Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Ember CLI中的应用程序初始值设定项中进行注入?_Javascript_Ember.js_Ember Cli_Ecmascript 6 - Fatal编程技术网

Javascript 在Ember CLI中的应用程序初始值设定项中进行注入?

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中,我有一个初始值设定项,它将应用程序控制器注入到组件中:

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');
  }
};