![](/img/trans.png)
[英]Backbone.js and underscore.js binding this to this.collection.add
[英]Binding to add on a backbone.js collection
我想在一個骨干集合的所有實例中獲取后,將模型的ID設置為正確的值,但這似乎不起作用:
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並在其上調用fetch來測試),我做錯了什么?
注意:我知道我可以在NoteCollection的特定實例上綁定該方法,這是有效的,但我想在所有實例上綁定它。
這可能是因為note.id返回true。
好消息是Backbone已經有了一個約定,可以將模型的id
屬性設置為模型上的特定屬性。 這是通過設置idAttribute
來完成的(在Backbone的源代碼中查看此行 )
var Note = Backbone.Model.extend({
idAttribute: 'noteid'
});
使用此代碼,Backbone將負責設置note.id = note.get('noteid')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.