ember-dataとJSONAPISerializerを使ったEmberアプリケーションでは、タスクモデルと優先度モデルがあります。タスクは優先度に属し、優先度はそれに関連する多くのタスクを持つことができます。コントローラ内のモデルの属している属性を変更する方法
APP /モデル/ task.js
export default DS.Model.extend({
title: DS.attr ('string'),
description: DS.attr ('string'),
isComplete: DS.attr ('boolean'),
priority: DS.belongsTo('priority')
});
APP /モデル/ priority.js
export default DS.Model.extend({
title: DS.attr ('string'),
description: DS.attr ('string'),
tasks: DS.hasMany ('task'),
});
次のようにモデルでありますユーザーはタを編集できますその優先度を含む属性を変更します。これはコントローラで処理されます。
編集フォームには、優先度を選択できるドロップダウンがあります。このドロップダウンは、ストアに照会することによってコントローラによって設定されます。
私は、優先度を除くすべての属性で機能する編集と保存の部分を持っています。私はタスクを保存するときに変更された優先度をつけることができません。
私が試したのは、ドロップダウンリストで選択した値と一致するタイトルの優先度をストアに問い合わせて、その値をモデルに設定することでした。
私の最初の試みでのコントローラのコードは以下の通りであり、動作しませんでした。
var newPriority = this.get('store').queryRecord('priority', {
filter: {
title: newPriorityTitle
}
});
this.get('model').set('priority', newPriority);
モデルを保存する前に優先度を変更するにはどうすればよいですか?
更新:
私は、以下のいずれかに初期のコードを変更し、this.store.queryRecord(...)は、レコードを返さないので、それは
this.get('store').queryRecord('priority', {
filter: {
title: newPriorityTitle
}
}).then(function(data) {
this.get('model').set('priority', data);
});
タスクの優先度を設定するにはどうすればよいですか? –
私は、ドロップダウンから、表題の値と優先順位のための店に照会して、動作しないモデルにそれを設定してみてください。詳細は私の元の質問に追加されました。 – smartreference
優先度を設定するためのコードが役立つかもしれません。しかし、 'task.set( '優先'、selectedPriority);' '返しstore.query'' RecordArray'を –