Магистраль - с использованием другого имени поля для идентификатора
Я переношу старое приложение для использования backbone.js(надеюсь)
Проблема в том, что ни один из различных объектов в системе не использует id для id -
каждый объект отличается. Прочитав, я придумал решение ниже при инициализации Backbone.Model.
initialize: function(){
this.idAttribute = 'user_ID';
this.set({'id':this.get('user_ID')});
}
Я волнуюсь, однако, что, развиваясь с позвоночником, этот подход меня укусит.
У кого-нибудь есть опыт с этим.
Любые указатели получили высокую оценку.
edit: Я только что назвал isNew() на модели и получил правду, хотя теперь id установлен в 1.
///////////////////////////////////////////
Использование следующего, кажется, позволяет разобраться.
User = Backbone.Model.extend({
idAttribute : 'user_ID'
})
Ответы
Ответ 1
При использовании атрибута idAttribute основная магистраль сохраняет свойство 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
Удача