Я хотел бы создать два (или более) экземпляра представления, каждый с разными атрибутами 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 раз, если у меня есть 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
}
});
но это не вызывает события. На данный момент я довольно много рыбалка.
Кто-нибудь знает, как создать экземпляр backbone.js с el
, специфичным для этого экземпляра, который имеет события, которые запускаются только для этого экземпляра, а не другие экземпляры View
?