我有一个会话服务,我想注入每个组件,根据文档,这应该工作:
app.register('service:session', Session, { singleton: true });
app.inject('controller', 'session', 'service:session');
app.inject('route', 'session', 'service:session');
app.inject('component', 'session', 'service:session');
它适用于控制器和路由,但生成的组件不会接收服务。
我该如何做到这一点?
我知道有些人会说让组件访问服务是不好的形式,但是,Ember核心团队再次建议控制器将被可路由的组件替换,在这种情况下它看起来非常合理。
我正在遵循这种技术来同时填充可路由的组件:http://emberigniter.com/should-we-use-controllers-ember-2.0/
谢谢!
答案 0 :(得分:2)
尝试使用"重新打开" Ember.Component。 您可以查看reopen and reopenclass
的指南示例:
Ember.Component.reopen({
service: Ember.inject.service()
});
答案 1 :(得分:0)
我们可以向组件注入服务。你试过以下吗?
service : Ember.inject.service('service')
<强> component.js 强>
export default Ember.Component.extend({
service : Ember.inject.service('service'),
actions : {
}
});