我有以下内容:
// MODEL
NotificationModel = C.BB.Model.extend({
defaults : {
read : false
},
urlRoot : '/notifications'
});
// COLLECTION
NotificationCollection = C.BB.Collection.extend({
model: NotificationModel,
url: '/notifications',
initialize : function() {
var me = this;
me.fetch();
}
});
后来我认为:
...
onCollectionAdd : function(m,c,cfg) {
m.set({read: true},{silent: false});
该集正在更改项值,但Backbone未将更新发布到服务器。有什么建议?感谢
答案 0 :(得分:2)
你需要调用m.save(),它将调用对应的方法create()或update()。
方法set()仅触发change()事件,后者不保存后端的任何数据
答案 1 :(得分:1)
您可以将事件绑定到集合以保存它们:
NotificationCollection = C.BB.Collection.extend({
model: NotificationModel,
url: '/notifications',
initialize : function() {
this.fetch();
this.bind('change', this.save, this);
}
});
注意还有Collection.create
方法,它将新模型添加到集合中并将集合保存在服务器上。