【问题标题】:Injecting dependencies into an Ember model将依赖项注入 Ember 模型
【发布时间】:2014-07-26 23:02:27
【问题描述】:

我正在尝试将依赖项注入到我的 Ember 模型中。

https://github.com/emberjs/ember.js/issues/3670,表示已禁用。跟随https://github.com/stefanpenner/ember-cli/blob/master/blueprint/app/app.js#L4 的链接演示了如何启用MODEL_FACTORY_INJECTIONS,理论上这应该允许我将依赖项注入我的模型中,但是我没有运气。

在没有此解决方案的情况下,除了将其转储到应用程序的命名空间(即 App.ImAGlobalconfig`)之外,还有其他方法可以将应用程序范围内的全局单例对象的引用注入到 Ember.Model 中吗?

作为参考,这是我正在处理的初始化程序

App.initializer({
  name: 'preload',
  initialize: function(container/*, application*/) {
    App.deferReadiness();

    Ember.$.ajax({
      url: CONFIG.configURL,
      dataType: 'json',
      context: this
    }).done(
      function(json/*,status, request*/) {
       var appConfig;

        // ...

        container.register('app:config', appConfig, {instantiate: false});
        container.injection('controller', 'appConfig', 'app:config');
        container.injection('route', 'appConfig', 'app:config');
        container.injection('view', 'appConfig', 'app:config');
        container.injection('model', 'appConfig', 'app:config'); // I don't work!

        App.advanceReadiness();
      }
    ).fail(
      function(status, request, error) {
        console.log('Unable to load config with: ' + error);
      }
    );
  }
});

感谢所有帮助/意见。

【问题讨论】:

  • 在它的核心,这与 stackoverflow.com/questions/20952274/… 本质上是相同的问题,但没有得到解答。刚刚看到那个帖子,所以如果需要我很乐意删除这个帖子。

标签: javascript ember.js


【解决方案1】:

模型注入确实有效:

Ember.MODEL_FACTORY_INJECTIONS = true;    
App = Ember.Application.create();

App.initializer({
  name: 'model-injection',

  initialize: function(container, application) {

    var cfg = {version: '1'};
    container.register('app:config', cfg, {instantiate: false});


    container.injection('model', 'cfg', 'app:config');
    App.advanceReadiness();
  }
});

App.deferReadiness();

http://emberjs.jsbin.com/lomiy/1/edit

【讨论】:

  • 啊,你是对的,我们使用的是 1.4.x 金丝雀版本(由于一些不断变化的、尚未集成的 'params' api),显然该版本中不存在模型注入,但现在是(或至少在 1.7.x 金丝雀版本中)。我想在未来,我会针对当前的金丝雀构建尝试 POC 方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
相关资源
最近更新 更多