我有一个动态创建一个子视图parentview,我已经引发从子视图到父视图的事件,我传递子视图模型与某些属性设置父视图。 现在父视图我必须采取的模式,并加入到收集。 这里是我的代码子视图触发代码
$(this.el).trigger('added', this.model);
parentview事件
events: {
"added": "addNewAttribute"
},
addNewAttribute: function (model) {
console.log(model);
this.collection.add(model);
console.log(this.collection);
}
的console.log返回undefined。 有人可以让我知道如何将模型传递回父视图?
谢谢
我可能是关闭基地,但我猜子视图没有做包含此代码的功能结合:
$(this.el).trigger('added', this.model);
当你进入那个代码是在功能的结果,“这”并不指向子视图,它指出了一些DOM对象或东西。 然后this.model不指向你所期望的。
例如:
initialize : function () {
_.bindAll(this, "addFunction");
}
addFunction : function () {
$(this.el).trigger('added', this.model);
}
只是面对同样的问题!
事情是,父函数采用作为第一个参数的事件和触发功能传递变量的阵列。 所以代码应该是这样的:
$(this.el).trigger('added', [this.model]);
parentview事件:
events: {
"added": "addNewAttribute"
},
addNewAttribute: function (event,model) {
console.log(model);
this.collection.add(model);
console.log(this.collection);
}
这为我工作。
文章来源: How to trigger an event from child view to parent view in backbonejs and requirejs