2

我在一个组件(Ember.Component)中有一个“新”操作,其中包含以下代码:

var store = this.get('store');
store.createRecord('child');

但我收到以下错误:

TypeError: 'undefined' is not an object (evaluating 'store.createRecord')

我能够继续进行此操作的唯一方法是使用以下方法找到父对象(始终在组件中设置):

store = this.get('parent.store');

然后从上面进行 createRecord 调用。这是“正常”的进行方式吗?

4

1 回答 1

1

商店不存在于组件内部,因此您需要将其传递给组件,或者您必须从某个父控制器(或传入控制器)中获取它。

通过 Ember 数据转换文档 ( https://github.com/emberjs/data/blob/master/TRANSITION.md )

一般来说,直接在组件中查找模型是一种反模式,您应该更愿意在包含该组件的模板中传递您需要的任何模型。

不好的部分是,您要在组件中添加对 ember 数据的依赖项,这应该与外部世界无关。

于 2013-11-13T05:45:19.117 回答