Tôi muốn tạo hai (hoặc nhiều) trường hợp xem, mỗi trường có các thuộc tính el khác nhau và có các sự kiện liên kết với chúng thông qua sự kiện băm của khung nhìn backbone.js (không phải thông qua jQuery) .cách thích hợp để chỉ định động xem backbone.js el
Bắt sự kiện để kích hoạt khi tất cả instantiations có cùng el
là dễ dàng:
someView = Backbone.View.extend({
el: '#someDiv',
events: {
'click': 'someFunction'
},
someFunction: function(){
//Do something here
}
});
Cho đến nay, nếu tôi gán el
trong initialize
chức năng, và thiết lập events
thường như sau, các sự kiện không kích hoạt:
someView = Backbone.View.extend({
events: {
'click': 'someFunction'
},
initialize: function(options){
this.el = options.el
},
someFunction: function(){
//Do something here
}
});
Bản năng đầu tiên của tôi là có el
là hàm trả về chuỗi đại diện của phần tử dom quan tâm:
someView = Backbone.View.extend({
el: function(){
return '#someDiv-' + this.someNumber
},
events: {
'click': 'someFunction'
},
initialize: function(options){
this.someNumber = options.someNumber
},
someFunction: function(){
//Do something here
}
});
Tuy nhiên, điều này kích hoạt someFunction
x lần nếu tôi có x instantiations là .
Tiếp theo, tôi cố gắng thiết lập cả el
và events
thuộc tính trong initialize
:
someView = Backbone.View.extend({
initialize: function(options){
this.el = options.el
this.events = {
'click': 'someFunction'
}
},
someFunction: function(){
//Do something here
}
});
nhưng điều này không kích hoạt sự kiện. Tại thời điểm này tôi khá nhiều câu cá.
Có ai biết cách khởi tạo chế độ xem backbone.js với el
cụ thể cho trường hợp đó có các sự kiện chỉ kích hoạt cho trường hợp đó và không phải các trường hợp khác của View
không?
Cảm ơn bạn, Edward. – kikuchiyo
@EdwardMSmith hãy cập nhật các câu đố, chúng không hoạt động ... –
Cập nhật hai jsfiddles thành mã nguồn và xương sống từ CDNj thay vì từ github. Giả sử đó là vấn đề bạn đang gặp phải. –