Backbone.js 主干-为id使用不同的字段名
我正在移植一个旧的应用程序来使用backbone.js(希望如此) 问题是系统中的各种对象都没有使用“id”作为id- 每个对象都是不同的。通过阅读,我在初始化Backbone.Model时提出了以下解决方案Backbone.js 主干-为id使用不同的字段名,backbone.js,Backbone.js,我正在移植一个旧的应用程序来使用backbone.js(希望如此) 问题是系统中的各种对象都没有使用“id”作为id- 每个对象都是不同的。通过阅读,我在初始化Backbone.Model时提出了以下解决方案 initialize: function(){ this.idAttribute = 'user_ID'; this.set({'id':this.get('user_ID')}); } 然而,我担心当我用脊梁骨发展时,这种方法会伤害我。 有没有人有这方面的经验。
initialize: function(){
this.idAttribute = 'user_ID';
this.set({'id':this.get('user_ID')});
}
然而,我担心当我用脊梁骨发展时,这种方法会伤害我。
有没有人有这方面的经验。
非常感谢任何指点
编辑:我刚刚在模型上调用了isNew(),得到了true,尽管id现在设置为1。
///////////////////////////////////////////
使用下面的方法似乎可以解决问题
User = Backbone.Model.extend({
idAttribute : 'user_ID'
})当您使用idAttribute时,主干基本上保持
id
属性与user\u 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
好运当我问自己是否应该在主干项目的关系数据库模式中使用id后缀,如“id_user”,而不是“id”时,我偶然发现了这一点。我确信最好根据使用它们,然后我想“Doh,但是主干模型的id字段…”,直到我读了这个问答。谢谢!有点明显,但不要使用.get('id'),除非您需要原始id值(如果您有)。始终使用“model.id”。