Ember,广泛注入服务应用程序

时间:2017-01-19 19:49:20

标签: ember.js

我知道这个问题已经发布,但我没有找到任何更新或解释清楚的答案。

所以我有一个服务“会话”& “当前用户”谁有我的会话&内存中的当前用户(显而易见),我需要在每个控制器中实现此服务,实际上,我在每个控制器中都有

session: service(),
currentUser: service('current-user'),

我的问题是,如何在所有控制器中提供这些服务而不在每个控制器中重新声明它们?

谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我不得不发一个问题,最后找到回复......

所以我使用了初始化程序,让我们为我当前的用户服务。

ember g initializer current-user

它在app / initializers / current-user.js中创建一个新文件并将其放入其中

export function initialize(application) {
  application.inject('route', 'currentUser', 'service:current-user');
  application.inject('controller', 'currentUser', 'service:current-user');
  application.inject('component', 'currentUser', 'service:current-user');
}

export default {
  name: 'current-user',
  initialize
};

在这个代码示例中,我在路由,控制器和放大器中注入当前用户服务(thrid参数)。组件(第一个参数),它将被命名为currentUser(第二个参数)。

我希望它能帮助其他人:)