Saya memiliki serangkaian tombol yang ketika diklik menampilkan menu popup yang diposisikan tepat di bawah tombol. Saya ingin meneruskan posisi tombol ke tampilan. Bagaimana saya bisa melakukan itu?
ItemView = Backbone.View.extend({
tagName: 'li',
events: {
'click': 'showMenu'
},
initialize: function() {
_.bindAll(this, 'render');
},
render: function() {
return $(this.el).html(this.model.get('name'));
},
showMenu: function() {
var itemColl = new ItemColl();
new MenuView({collection: itemColl}); // how to pass the position of menu here?
}
});
sumber
this.options
, tetapi Anda dapat melakukannya sendiri jika Anda mau." .this.options.position
, tidakoptions.position
. Tampilan digunakan untuk melampirkaninitialize
argumenthis.options
tetapi itu berhenti terjadi di 1.1.0.Tambahkan argumen opsi ke
initialize
:Dan kemudian berikan beberapa opsi saat Anda membuat tampilan:
Untuk informasi lebih lanjut: http://backbonejs.org/#View-constructor
sumber
this.options
memberi saya mimpi buruk pemeliharaan dan debugging.this.options
initialize: function(options) { ... }
baik-baik saja, perubahannya adalah bahwa Backbone tidak lagi secara otomatis disetelthis.options
untuk Anda: "Tampilan Backbone tidak lagi secara otomatis melampirkan opsi yang diteruskan ke konstruktor sebagaithis.options
, tetapi Anda dapat melakukannya sendiri jika Anda mau." .Sejak backbone 1.1.0,
options
argumen tersebut tidak lagi dilampirkan secara otomatis ke tampilan (lihat masalah 2458 untuk diskusi). Anda sekarang perlu melampirkan opsi dari setiap tampilan secara manual:Sebagai alternatif, Anda dapat menggunakan plugin mini ini untuk melampirkan otomatis opsi daftar putih, seperti:
sumber
lulus dari lokasi lain
Tambahkan argumen opsi untuk diinisialisasi dalam tampilan Anda mendapatkan variabel yang diteruskan,
untuk mendapatkan nilai guna -
sumber
Gunakan this.options untuk mengambil argumentr dalam tampilan
Contoh Kerja: http://jsfiddle.net/Cpn3g/1771/
sumber