将实例的实例注入特定的组件类型

时间:2013-11-19 22:30:24

标签: ember.js

我有以下初始化程序,我想将ember-data存储注入特定的组件类型:

我尝试使用

  

application.inject

在初始化程序中,但我无法让它工作。我用下面的代码攻击了它,但我不明白为什么评论的代码不起作用:

Ember.onLoad('Ember.Application', function(Application) {
  Application.initializer({
    name: "injectStoreIntoAutosuggest",
    after: "store",
    initialize: function(container, application) {
      window.AutoSuggestComponent.reopen({
        store: container.lookup('store:main')
      });

      // FIXME: why does this not work?
      // application.inject('component:autoSuggest', 'store', 'store:main');
    }
  });
});

我需要商店的原因是因为我有this组件有这个api:

{{auto-suggest source=App.Employee destination=controller.dsChosenEmployees searchPath="fullName" minChars=0}}

我认为能够只指定一个余烬数据模型很好,并且很好。

以前你可以这样做:

  

App.Employee.find

但是使用最新的余烬数据不再是一种选择。

1 个答案:

答案 0 :(得分:4)

你的问题在于注射名称。将component:autoSuggest更改为component:auto-suggest并将有效:

Ember.onLoad('Ember.Application', function(Application) {
  Application.initializer({
    name: "injectStoreIntoAutosuggest",
    after: "store",
    initialize: function(container, application) {      
      application.inject('component:auto-suggest', 'store', 'store:main');
    }
  });
});

这是这个工作http://jsfiddle.net/marciojunior/6VEks/

的小提琴