Ember.js 未捕获类型错误:无法读取属性';createRecord';未定义的

Ember.js 未捕获类型错误:无法读取属性';createRecord';未定义的,ember.js,Ember.js,我尝试过以多种不同的方式编写此代码,但它返回以下错误: 未捕获的TypeError:无法读取未定义的属性“createRecord” 不幸的是,类似问题的答案没有帮助。有什么想法吗?余烬将存储注入路由和控制器,而不是组件,所以这就是您的问题所在 您可以继续将存储注入初始值设定项内的组件,如下所示: Ember.onLoad('Ember.Application', function(Application) { Application.initializer({ name: "inj

我尝试过以多种不同的方式编写此代码,但它返回以下错误:

未捕获的TypeError:无法读取未定义的属性“createRecord”


不幸的是,类似问题的答案没有帮助。有什么想法吗?

余烬将
存储
注入路由和控制器,而不是组件,所以这就是您的问题所在

您可以继续将
存储
注入初始值设定项内的组件,如下所示:

Ember.onLoad('Ember.Application', function(Application) {
  Application.initializer({
    name: "injectStoreIntoMyComponent",
    after: "store",
    initialize: function(container, application) {      
      application.inject('component:good-test-comp', 'store', 'store:main');
    }
  });
});

工作示例将存储注入组件不是一个好的设计。您可以将其作为参数传递
{{my component store=store}}

在组件中注入存储不是好的设计。相反,我们需要将数据发送到组件,并发送操作以与数据通信。如果你还想把它作为特例,那么你可以简单地说

store: Ember.inject.service()

this.store
未定义,我看不出您在哪里定义了
store
?我不知道我必须定义store。通常做什么@谢谢你的回答。出于某种原因,这在我的琥珀色应用程序上不起作用。因此,我最终摆脱了表单组件,将所有内容都放到了控制器中。将所有内容放到控制器中会很好,因为余烬会自动将
store
注入到控制器中,就像我的回答所说的,当我们移到2.0时,组件将接管控制器-所以看起来您应该留在控制器中那个方向。我对上面代码的解释感兴趣。我有一个表单来发布一个事件,它应该是一个可重用的组件,适用于不同的地方,等等。在CLI世界中,它将走向何方?这非常漂亮和完美,为我省去了这么大的麻烦,谢谢!
store: Ember.inject.service()