我想创建两个(或更多)视图实例,每个实例具有不同的 el 属性,并通过backbone.js 视图的事件哈希(而不是通过 jQuery)将事件绑定到它们。
当所有实例化都相同时触发事件el
很容易:
someView = Backbone.View.extend({
el: '#someDiv',
events: {
'click': 'someFunction'
},
someFunction: function(){
//Do something here
}
});
到目前为止,如果我el
在initialize
函数中分配,events
并按如下方式正常设置,事件不会触发:
someView = Backbone.View.extend({
events: {
'click': 'someFunction'
},
initialize: function( options ){
this.el = options.el
},
someFunction: function(){
//Do something here
}
});
我的第一直觉是拥有el
一个返回感兴趣的 dom 元素的字符串表示的函数:
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
}
});
但是,someFunction
如果我有 x 个someView
.
接下来我尝试在中设置el
和events
属性initialize
:
someView = Backbone.View.extend({
initialize: function( options ){
this.el = options.el
this.events = {
'click': 'someFunction'
}
},
someFunction: function(){
//Do something here
}
});
但这不会触发事件。在这一点上,我几乎钓鱼。
有谁知道如何使用el
特定于该实例的具有仅触发该实例而不是其他实例的事件的实例来实例化主干.js 视图View
?