所以我有一个问题,即我有一个主干集合,用于创建将数据保存到REST API的函数。数据将保存到服务器,并将模型添加到当前集合,但不会触发集合的add事件。下面是代码的片段 视图初始化函数
intialize : function() {
this.listenTo(this.collection, 'add', this.updateList);
},
updateList函数只执行控制台日志。使用集合保存数据的视图函数是:
cards = this.collection;
debugger
cards.create(data, {
success : function(model, response) {
console.log("success on saving card");
console.log(response);
console.log("Updating list");
console.log(cards);
},
error : function(model, response) {
console.log("error on saving card");
console.log(model);
console.log("response");
console.log(response);
}
})
return false;
答案 0 :(得分:1)
在您的视图中尝试此代码:
initialize: function() {
this.collection.on('add', this.updateList, this);
}
或者:
var someCollection = new SomeCollection();
var view = new SomeView({collection: someCollection});
view.listenTo(someCollection, 'add', view.updateList);
答案 1 :(得分:0)
为什么不在视图中使用:this.model.on('change', doAction, this);
?如果我理解正确,这是一个更好的解决方案,因为你的模型正在改变。
另外,我无法在On()函数的任何地方找到ListenTo()强制的地方,你能告诉我你在哪里看到它吗?