在使用ember-data和JSONAPISerializer的我的Ember應用程序中,我有一個任務模型和一個優先模型。任務屬於優先級,並且優先級可以具有與其關聯的許多任務。如何在控制器中更改屬於某個模型的屬性
的型號如下
應用程序/模型/ task.js
export default DS.Model.extend({
title: DS.attr ('string'),
description: DS.attr ('string'),
isComplete: DS.attr ('boolean'),
priority: DS.belongsTo('priority')
});
應用/模型/ priority.js
export default DS.Model.extend({
title: DS.attr ('string'),
description: DS.attr ('string'),
tasks: DS.hasMany ('task'),
});
的用戶可以編輯ta sk並更改任何屬性,包括其優先級。這是在控制器中處理的。
編輯窗體有一個下拉列表,可以從中選擇優先級。該下拉列表由控制器通過查詢商店來填充。
我有編輯和保存部分工作的所有屬性,除了優先級。保存任務時,我無法改變優先級。
我試過的是查詢商店優先與標題匹配下拉列表中選定的值,並在模型中設置。
第一次嘗試時控制器中的代碼如下所示,但無效。
var newPriority = this.get('store').queryRecord('priority', {
filter: {
title: newPriorityTitle
}
});
this.get('model').set('priority', newPriority);
如何在保存模型之前更改優先級?
更新:
我改變了最初的代碼下面的一個,似乎工作
this.get('store').queryRecord('priority', {
filter: {
title: newPriorityTitle
}
}).then(function(data) {
this.get('model').set('priority', data);
});
你如何爲任務設置優先級? –
我從商店的下拉菜單中查詢商店的優先級,然後嘗試將其設置到不起作用的模型上。詳細信息添加在我原來的問題。 – smartreference
也許你的代碼設置優先級幫助我們。但'task.set('priority',selectedPriority);'應該可以工作 –