【发布时间】:2016-07-19 21:57:11
【问题描述】:
我正在尝试更新 Ember 商店中的记录。当我尝试这样做时,它会返回以下错误:
未捕获的错误:断言失败:无法将 set('name', test) 委托给对象代理的 'content' 属性:它的 'content' 未定义。
控制器如下所示:
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);
}
});
模板触发动作,发送一个名为 event 的对象,该对象具有 name 和 id 等属性。事件对象的值来自控制器,并且在触发 editEvent 动作之前已经设置:
<form {{action 'editEvent' event on="submit"}}>
【问题讨论】:
-
find不返回承诺吗?另外,请向我们展示模板代码,尤其是您调用editEvent操作的部分——event到底是什么? -
Find 返回一个类,里面有一个内容类。 Event 是一个具有 name 和 id 等属性的对象。
-
你的意思是从模型钩子返回一个 POJO 吗?通常你会返回一个承诺。你为什么将
store.find包裹在这样的对象中?您是否尝试加载多个模型?
标签: javascript ember.js ember-data ember-cli