【发布时间】:2013-11-19 22:30:24
【问题描述】:
我有以下初始化程序,我想在其中将 ember-data 存储注入特定组件类型:
我尝试使用
application.inject
在初始化程序中,但我无法让它工作。我已经用下面的代码破解了它,但我不明白为什么注释代码不起作用:
Ember.onLoad('Ember.Application', function(Application) {
Application.initializer({
name: "injectStoreIntoAutosuggest",
after: "store",
initialize: function(container, application) {
window.AutoSuggestComponent.reopen({
store: container.lookup('store:main')
});
// FIXME: why does this not work?
// application.inject('component:autoSuggest', 'store', 'store:main');
}
});
});
我需要 store 的原因是因为我有 this 有这个 api 的组件:
{{auto-suggest source=App.Employee destination=controller.dsChosenEmployees searchPath="fullName" minChars=0}}
我认为能够只指定一个 ember-data 模型并且一切顺利。
以前你可以这样做:
App.Employee.find
但是对于最新的 ember-data,这不再是一种选择。
【问题讨论】:
-
从技术上讲它应该是'component:auto-suggest',但这不是它不起作用的原因,它似乎是因为它是扩展的,它不是通过注入创建的,我是仍然代码潜水......
-
而且看起来组件是在初始化程序发生之前实例化的,因此使用这些依赖项的构建永远不会使其进入类。我不太确定如何正确修复它。
-
@kingpin2k 只是
application.inject('component:auto-suggest', 'store', 'store:main');为我工作。我不明白你描述的其他问题。 -
谁知道呢,我的垃圾箱出了点怪事。
标签: ember.js