Что у меня есть следующие:Магистральные LayoutManager delegateEvents на подвид не работает
Views.Parent = Backbone.View.extend({
template: "parent",
initialize: function() {
this.render();
},
beforeRender: function() {
this.setView(".foo", new Views.Child({
model: this.model
});
},
afterRender: function() {
this.$el.html(Handlebars.compile(this.$el.html()).call(this, this.model.attributes));
var foo = this.getView(".foo");
foo.delegateEvents();
}
});
Views.Child = Backbone.View.extend({
template: "child",
events: {
"click input": "inputClick"
},
initialize: function() {
this.listenTo(this.model, "change", this.render);
},
inputClick: function() {
console.info("Input Clicked");
},
afterRender: function() {
this.$el.html(Handlebars.compile(this.$el.html()).call(this, this.model.attributes));
var foo = this.getView(".foo");
foo.delegateEvents();
}
});
События в Views.Child
не стреляли. Вид определенно найден, и foo.events возвращает правильные события. Я пробовал несколько способов вставки моего подзадача, делегировать его просто не делает.
Есть ли кто-нибудь еще в этом и может предложить любое понимание?
Следует упомянуть, что я использую свойство events и this.listenTo в подзадаче. Ни один из них не уволен.
Редактировать: Родитель добавляется к другой точке зрения, как, например: this.$el.append(parentView.$el);
Где parentView
это проиллюстрированный объект Views.Parent
.
Что выглядит Views.Child? – domino
Я обновил сообщение. Это упрощенная версия кода, который я фактически запускаю для ясности. – aef
'this.listenTo (model," change ", this.render);' '" model "' не должна быть строкой – domino