Backbone - 为id使用不同的字段名称

时间:2011-11-04 09:33:43

标签: backbone.js

我正在移植一个旧应用程序以使用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'

})

1 个答案:

答案 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

祝你好运