Emberストアのレコードを更新しようとしています。私はこれをしようとすると、それは次のエラーが返されます。コントローラは、このようになりますEmberでレコードを操作しようとするとコンテンツが未定義です。
Uncaught Error: Assertion Failed: Cannot delegate set('name', test) to the 'content' property of object proxy : its 'content' is undefined.
:
import Ember from 'ember';
export default Ember.Controller.extend({
model: null,
event: {
name: "test",
id: "adfg8943224xcvsdf"
},
actions: {
editEvent (event) {
var Event = this.store.find('event', event.id);
Event.set('name', event.name);
Event.save()
}
}
});
ルートは次のようになります。
import Ember from 'ember';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model() {
return {
event: this.store.find('event')
}
},
setupController (controller, model) {
controller.set('model', model);
}
});
テンプレートは、トリガーイベントと呼ばれるオブジェクトを送信します。このオブジェクトには、nameやidなどのプロパティがあります。イベントオブジェクトの値はコントローラから来て、editEventアクションをトリガーする前に設定されています:
<form {{action 'editEvent' event on="submit"}}>
は '約束を返しfind'ませんか?また、テンプレートコード、特に 'editEvent'アクションを呼び出す部分、つまり' event'は何ですか? –
Findは、コンテンツクラスを内部に持つクラスを返します。イベントは、nameやidのようなプロパティを持つオブジェクトです。 –
モデルフックからPOJOを返すのですか?通常、あなたは約束を返すでしょう。なぜあなたは 'store.find'をそのようなオブジェクトにラップしていますか?複数のモデルを読み込もうとしていますか? – Sarus