2012-01-03 47 views
1

我有以下幾點:Backbone.js未在模型更改中發佈到服務器?爲什麼?

// 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}); 

設定正在發生變化的項目價值,但骨架沒有發佈更新到服務器。有什麼建議麼?由於

回答

2

你需要調用m.save(),它會調用相應的方法創建()或update()。

方法set()觸發僅改變()事件,該事件不保存在後臺任何數據

1

你可以一個事件綁定到集合來拯救他們:

NotificationCollection = C.BB.Collection.extend({ 
    model: NotificationModel, 
    url: '/notifications', 
    initialize : function() { 
     this.fetch(); 
     this.bind('change', this.save, this); 
    } 
}); 

注意裏面還有Collection.create方法將一個新模型添加到集合並將集合保存在服務器上。

相關問題