在ember-cli中没有单例的依赖注入

时间:2014-11-12 00:21:46

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

刚刚将我的应用转换为ember-cli,但我不知道如何再使用Ember.Application.register,因为register似乎在启动应用程序时无法使用extend而不是create

import Ember from 'ember';
import App from 'myapp/app';

var AdminMyController = Ember.ObjectController.extend({
});

// THROWS ERROR HERE BECAUSE register isn't, uh...registered?
App.register('controller:adminMyController', AdminMyController, { singleton: false });

export default AdminMyController;

以前,因为App是全球性的,我可以在同一个类中注册。

我是否必须将所有注册调用移至初始化程序,以便我可以访问应用程序实例?

1 个答案:

答案 0 :(得分:1)

我相信初始化程序会为你做这件事。您需要在app目录中创建一个initializers文件夹(与控制器,模板等级别相同)。这个文件应该去那里。

import Ember from 'ember';

var AdminMyController = Ember.ObjectController.extend({
    ...
});

export default {
    name: 'adminMyController',
    initialize: function (container, application) {
        container.register('controller:adminMyController', AdminMyController, {singleton: false});
    }
};