我正在移植一个旧应用程序以使用backbone.js(希望如此)问题是系统中的各种对象都没有使用'id'作为id - 每个对象都是不同的.阅读时,我在初始化Backbone.Model时想出了下面的解决方案.
initialize: function(){
this.idAttribute = 'user_ID';
this.set({'id':this.get('user_ID')});
}
Run Code Online (Sandbox Code Playgroud)
然而,我很担心,随着我开发骨干,这种方法会让我感到厌烦.有人对这个有经验么.任何指针都非常赞赏.
编辑:我刚刚在模型上调用isNew()并且得到了真实,即使id现在设置为1. ///////////////////////// //////////////////
使用以下似乎可以解决它.
User = Backbone.Model.extend({
idAttribute : 'user_ID'
Run Code Online (Sandbox Code Playgroud)
})
tim*_*ham 49
当您使用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
Run Code Online (Sandbox Code Playgroud)
祝好运