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

typ*_*ror 5 javascript ember.js ecmascript-6 ember-cli

刚刚将我的应用程序转换为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;
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_*lex 1

我相信初始化程序会为你做这件事。您需要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});
    }
};
Run Code Online (Sandbox Code Playgroud)