2014-10-01 3 views
3

Имеет ли поведение модели выборки, в частности задание идентификатора модели, измененное между 1.1.0 и 1.1.2?изменен идентификатор базовой линии

Я проверил журнал изменений и не нашел ничего подходящего. не

Следующая больше не работает:

var Wibble = Backbone.Model.extend({ 
    urlRoot: 'rest/wibble', 
    idAttribute: 'wibbleId' 
}); 

var model = new Wibble(); 
model.id = 1; 
model.fetch() 

Он просит/отдых/Wibble, а не/отдых/Wibble/1, как раньше.

Примеры: Я использовал URL(), а не получать(), чтобы продемонстрировать

jsbin for 1.1.0

jsbin for 1.1.2

ответ

3

модель строит свой URL, прилагая /[id], когда модель не нова:

url: function() { 
    var base = _.result(this, 'urlRoot') || 
    _.result(this.collection, 'url') || 
    urlError(); 
    if (this.isNew()) return base; 
    return base.replace(/([^\/])$/, '$1/') + encodeURIComponent(this.id); 
} 

, но оказывается, что model.isNew изменен между 1.1.0 a й 1.1.2

Проверка теперь только рассматривает свойство, описываемое idAttribute и больше не в id собственности.

Настройка вашего idAttribute, как вы делали в вашем примере 1.1.2, вероятно, самая безопасная ставка:

model.set('wibbleId', 123); 
Смежные вопросы