2015-06-10 3 views
2

Я хотел бы переопределить мой buildURL в зависимости от того, какие свойства были изменены в одной и той же модели. Например, если статус изменился, я хотел бы ОТКЛЮЧИТЬ к определенному маршруту, и если бы изменник был изменен, я хотел бы перейти к другому маршруту.Определение buildURL в зависимости от того, какие свойства были изменены

Пример:

this.store.find('conversation', conv.id).then(function(conversation){ 
    conversation.set('status', 'opened'); 
    conversation.save();      
}); 

Это будет использовать определенный PUT маршрут и это:

this.store.find('conversation', this.get('selectedConv').id).then(function(conversation){ 
    conversation.set('subuser', subuser); 
    conversation.set('url', subuser.get('email')); 
    conversation.save(); 
}); 

И это будет использовать другой маршрут PUT даже то, что изменения сделаны на одной и той же модели. Все это происходит в контроллере.

ответ

4

Вам необходимо настроить адаптер conversation, в частности способ urlForUpdateRecord.

оригинальный метод looks так:

urlForUpdateRecord: function(id, modelName, snapshot) { 
    return this._buildURL(modelName, id); 
}, 

В этом методе, вам необходимо изучить снимок и настроить URL соответственно.

В последней версии Ember Data введено свойство changedAttributes. Кажется, это то, что вам нужно.

Удачи вам!

+0

Не забудьте подняться!^- ^ –

Смежные вопросы