如何在服务ember.js中注入商店

Ale*_*ard 7 ember.js

我试图从初始化器注入商店但没有成功,所以我在我的服务中使用init查询,但我不太喜欢它,我宁愿保持分离并将注入放在初始化器中......

恩伯:1.11.1

Ember数据:1.0.0-beta.16.1

jQuery:1.11.2

不工作:初始化器

//app/initializers/initializer-store.js
export default {
  name: 'initializer-store',
  after: 'store',

  initialize: function(container, application) {
    application.inject('service:mtg-level-service', 'store', 'store:main');
  }
};
Run Code Online (Sandbox Code Playgroud)

工作:服务

//app/services/mtg-level-service.js
import Ember from 'ember';

export default Ember.Service.extend({
  availableIn: ['controllers', 'routes'],
  store: null,

  init: function() {
    this._super();
    this.set('store', this.container.lookup("store:main"));
  }
});
Run Code Online (Sandbox Code Playgroud)

ace*_*des 12

截至Ember v1.10:

import Ember from 'ember';

export default Ember.Service.extend({  
  store: Ember.inject.service('store')
});
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在该上下文中,它是`this.get('store')`而不是`this.store` (4认同)