Я хотел бы создать два (или более )экземпляра представления, каждый с разными атрибутами 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
?