Я хотел бы создать два (или более) экземпляра представления, каждый с разными атрибутами el, и связать события с ними через хеш-события вида backbone.js (не через jQuery) ,Правильный способ динамического назначения backbone.js view el
Получение события, чтобы вызвать, когда все конкретизации имеют один и тот же 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
быть функцией, которая возвращает строковое представление йот интересующего элемента:
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
х раз, если у меня есть х инстанциация .
Далее я попытался установить как атрибуты 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
?
Спасибо, Эдвард. – kikuchiyo
@EdwardMSmith, пожалуйста, обновите скрипты, они не работают ... –
Обновлено два jsfiddles до исходного подчеркивания и основы от CDNjs, а не от github. Предполагая, что это была проблема, которую вы видели. –