Ember.js将依赖注入控制器,路由和数据存储适配器

时间:2013-03-14 06:44:48

标签: javascript web dependency-injection ember.js ember-data

我正在尝试将依赖项注入数据存储适配器,因此可以从“init”方法开始,但是我遇到了麻烦。我是http://livsey.org/blog/2013/02/10/integrating-pusher-with-ember/中概述的创建“Pusher”对象的方法

Ember.Application.initializer({
  name: "pusher",
  initialize: function(container, application) {
    // Original code from blog post
    // use the same instance of Pusher everywhere in the app
    container.optionsForType('pusher', { singleton: true });

    // register 'pusher:main' as our Pusher object
    container.register('pusher', 'main', application.Pusher);

    // inject the Pusher object into all controllers and routes
    container.typeInjection('controller', 'pusher', 'pusher:main');
    container.typeInjection('route', 'pusher', 'pusher:main');

    // My guessed addition
    container.typeInjection('adapter', 'pusher', 'pusher:main');
    container.typeInjection('store', 'pusher', 'pusher:main');
  }
});

但这似乎不起作用,如

this.get('pusher');

在适配器的init方法中未定义。实际上,适配器的init方法似乎在Pusher的init方法之前运行。如何在不使用全局变量的情况下将相同的对象同时放入路径和自定义存储适配器中?

0 个答案:

没有答案