有没有办法让所有路线,控制器和组件都可以使用Ember服务?

Nag*_*Nag 2 ember.js

我有一个Ember 2.3.0应用程序和一个名为的服务ui.js.我经常在许多路线,控制器和组件上使用此服务.我通常通过这样做手动将服务注入每个路由,控制器和组件:

ui: Ember.inject.service()
Run Code Online (Sandbox Code Playgroud)

但是,手动注入它变得非常繁琐.如何自动使UI服务可用于所有路由,控制器和组件?

Pat*_*ssa 5

您可以使用初始化程序来实现此目的,创建app/initiliazers/ui.js:

export default {
  name: 'ui',
  initialize(container, app) {
    app.inject('route', 'ui', 'service:ui');
    app.inject('controller', 'ui', 'service:ui');
    app.inject('component', 'ui', 'service:ui');
  }
};
Run Code Online (Sandbox Code Playgroud)