我想根据在同一型号上更改的属性重新定义我的buildURL。例如,如果状态改变了,我想PUT到某条路线,如果子用户改变了,我想把它推到另一条路线。
示例:
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路径。这一切都发生在控制器中。
答案 0 :(得分:4)
您需要自定义conversation
适配器,特别是urlForUpdateRecord
方法。
原始方法looks是这样的:
urlForUpdateRecord: function(id, modelName, snapshot) {
return this._buildURL(modelName, id);
},
在此方法中,您需要检查快照并相应地调整URL。
最新版本的Ember Data引入了changedAttributes属性。这似乎是你需要的。
祝你好运!