Ember.js 如何将服务注入Ember JS中的每个组件
我有一个会话服务,我想将它注入到每个组件中,根据文档,这应该可以工作:Ember.js 如何将服务注入Ember JS中的每个组件,ember.js,Ember.js,我有一个会话服务,我想将它注入到每个组件中,根据文档,这应该可以工作: app.register('service:session', Session, { singleton: true }); app.inject('controller', 'session', 'service:session'); app.inject('route', 'session', 'service:session'); app.inject('component', 'session', 'service:
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');
它适用于控制器和路由,但生成的组件不会获取服务
我怎样才能做到这一点
我知道有些人会说,让组件访问服务是一种糟糕的形式,但是,恩伯核心团队再次建议,控制器将被可路由组件所取代,在这种情况下,这似乎是完全合理的
同时,我采用此技术填充可布线组件:
谢谢 我们可以向组件注入服务。你有没有试过以下几点
service : Ember.inject.service('service')
component.js
export default Ember.Component.extend({
service : Ember.inject.service('service'),
actions : {
}
});
尝试使用“重新打开”Ember.Component。
你可以去找导游
例如:
Ember.Component.reopen({
service: Ember.inject.service()
});
如果您使用的是Ember CLI,则会自动注册服务。这应该是可行的。是的,我使用的是ember CLI,上面的方法通常是有效的,只是不适用于组件。不确定这是一个bug,还是Ember purism试图强迫您将组件与全局范围隔离。谢谢,但问题特别是生成的组件,即那些我没有定义它们的.js文件的组件。