我正在移植一个旧应用程序以使用backbone.js(希望如此) 问题是系统中的各种对象都没有使用'id'作为id - 每个对象都不同。阅读时,我在初始化Backbone.Model时提出了以下解决方案。
initialize: function(){
this.idAttribute = 'user_ID';
this.set({'id':this.get('user_ID')});
}
然而我担心,随着我与骨干一起发展,这种方法会让我感到厌烦。 有人对这个有经验么。 任何指针都非常赞赏。
编辑:我刚刚在模型上调用了isNew()并且为true,即使id现在设置为1。 ///////////////////////////////////////////
使用以下内容似乎可以解决这个问题。
User = Backbone.Model.extend({
idAttribute : 'user_ID'
})
答案 0 :(得分:50)
使用idAttribute时,backbone基本上使id
属性与user_ID
属性保持同步。通常使用的方式是定义类
var UserModel = Backbone.Model.extend({
idAttribute: 'user_ID',
initialize: function() {
//do stuff
}
});
var me = new UserModel({user_ID: 1234, name: 'Tim'});
console.log(me.id); //1234
console.log(me.get('user_ID')); //1234
console.log(me.isNew()); //false
var me2 = new UserModel({name: 'newUser'});
console.log(me2.isNew()); //true
祝你好运