我有一个动态创建子视图的父视图,我已经触发了从子视图到父视图的事件,并且我将子视图的模型传递给父视图,并设置了一些属性。现在在父视图中我必须采用模型并添加到集合中。这是我的代码 子视图触发器代码
$(this.el).trigger('added', this.model);
父视图事件
events: {
"added": "addNewAttribute"
},
addNewAttribute: function (model) {
console.log(model);
this.collection.add(model);
console.log(this.collection);
}
console.log返回undefined。有人能让我知道如何将模型传递回父视图吗?
感谢
答案 0 :(得分:2)
刚遇到同样的问题!
问题是父函数将事件作为第一个参数 触发器函数将变量作为数组传递。 所以代码应该像:
$(this.el).trigger('added', [this.model]);
父视图事件:
events: {
"added": "addNewAttribute"
},
addNewAttribute: function (event,model) {
console.log(model);
this.collection.add(model);
console.log(this.collection);
}
这对我有用。
答案 1 :(得分:1)
我可能不在基础但我猜测子视图没有对包含此代码的函数进行绑定:
$(this.el).trigger('added', this.model);
因此,当您进入代码所在的函数时,“this”不指向子视图,它指向某个DOM对象或其他东西。然后this.model没有指出你的期望。
例如:
initialize : function () {
_.bindAll(this, "addFunction");
}
addFunction : function () {
$(this.el).trigger('added', this.model);
}