javascript - 在 Ember-CLI 的应用程序初始化程序中注入(inject)?

标签 javascript ember.js ember-cli ecmascript-6

在老派的 Ember 中,我有一个将应用程序 Controller 注入(inject)组件的初始化程序:

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

问题是:如何以这种新格式引用 AppTopBreadcrumbsComponentsApp 不再存在,并且该组件不再像以前那样是全局的...它像其他所有内容一样是 es6 模块。

我如何在 Ember-CLI 中引用它?

谢谢!

最佳答案

Vanilla Ember 中的

App 与接收到的 application 相同:

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

关于javascript - 在 Ember-CLI 的应用程序初始化程序中注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27281560/

相关文章:

javascript - 更改 Material ui 选项卡标签的颜色

javascript - jQuery 将所有 href =""替换为 onclick ="window.location="

javascript - 客户端 MV* - 模型应该有保存方法吗?

javascript - Ember Brocfile 不导入 JS 和 CSS 文件

ember.js - loader.js 插件丢失

javascript - 在运行该函数之前等待一分钟?

javascript - 在 Meteor.js 中从 template.rendered 中调用辅助函数,在 1.0 中出错,在 0.9.3 中正常

Ember.js 和 Canvas

javascript - Ember 版本2.12.2 : view isn't showing up

ember.js - Ember-cli ember serve AssertionError (false == true)