Javascript 在Ember CLI中的应用程序初始值设定项中进行注入?
在旧式Ember中,我有一个初始值设定项,它将应用程序控制器注入到组件中:Javascript 在Ember CLI中的应用程序初始值设定项中进行注入?,javascript,ember.js,ember-cli,ecmascript-6,Javascript,Ember.js,Ember Cli,Ecmascript 6,在旧式Ember中,我有一个初始值设定项,它将应用程序控制器注入到组件中: Ember.Application.initializer({ name: "TopBreadcrumbs", initialize: function(container, application) { application.register("component:top-breadcrumbs", App.TopBreadcrumbsComponent); a
Ember.Application.initializer({
name: "TopBreadcrumbs",
initialize: function(container, application) {
application.register("component:top-breadcrumbs", App.TopBreadcrumbsComponent);
application.inject("component:top-breadcrumbs", "router", "router:main");
return application.inject("component:top-breadcrumbs", "applicationController", "controller:application");
}
});
将此初始值设定项转换为Ember CLI和ES6模块,我有以下功能:
// initializers/top-breadcrumbs.js
export default {
name: "top-breadcrumbs",
initialize: function(container, application) {
application.register("component:top-breadcrumbs", App.TopBreadcrumbsComponent);
application.inject("component:top-breadcrumbs", "router", "router:main");
return application.inject("component:top-breadcrumbs", "applicationController", "controller:application");
}
};
问题是:如何在这种新格式中引用AppTopBreadCrumbComponents<代码>应用程序不再存在,该组件不再像以前那样是全局组件。。。与其他模块一样,它也是es6模块
我如何在Ember CLI中引用它
谢谢 找到了解决方案:
import TopBreadcrumbsComponent from "frontend/components/top-breadcrumbs";
然后使用该导入。
App
在香草灰烬中与应用程序
在以下文件中接收相同:
initialize: function(container, application) {
并且,要从应用程序访问组件,请将初始值设定项设置为在应用程序对象准备就绪后加载:
after: 'registerComponents'
然后,您可以使用以下内容查找它们:
var TopBreadcrumbsComponent = container.lookup('component:top-breadcrumbs');
因此:
谢谢这比我上面的方法好多了。
export default {
name: "top-breadcrumbs",
after: 'registerComponents',
initialize: function(container, application) {
var TopBreadcrumbsComponent = container.lookup('component:top-breadcrumbs');
}
};