2012-01-24 58 views
0

我想之後的骨幹收集的所有實例取到模型的ID設置爲正確的值,但是這似乎並沒有工作:結合在Backbone.js的集合添加

var NoteCollection = Backbone.Collection.extend(
{ 
    model: Note, 
    initialize: function() { 
     this.bind("add", function (note) { 
      if (!note.id && note.has('noteid')) 
       note.id = note.get('noteid'); 
     }); 
    } 
}); 

該函數永遠不會被調用(我正在測試通過創建一個新的NoteCollection並調用獲取它),我做錯了什麼?

注意:我知道我可以在NoteCollection的特定實例上綁定該方法,並且該方法可行,但我想將它綁定到所有實例上。

+0

你能證明你的測試代碼? –

回答

2

這可能是因爲note.id返回true。

好消息是骨幹已經有一個約定,將模型的id屬性設置爲模型上的特定屬性。這是通過設置idAttribute完成(見this line在骨幹源)

var Note = Backbone.Model.extend({ 
    idAttribute: 'noteid' 
}); 

有了這個代碼,骨幹會照顧設定note.id = note.get('noteid')

+0

完美,謝謝! –