それぞれ異なる el 属性を持つ 2 つ (またはそれ以上) のビュー インスタンスを作成し、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 回ある場合、これは 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
の他のインスタンスではなく、そのインスタンスのみをトリガーするイベントを持つそのインスタンスに固有の backbone.js ビューをインスタンス化する方法を知っている人はいView
ますか?