使用烬,CLI版本0.0.42如何让两个ember-cli服务交叉通信?
运行这些命令
ember new myApp
cd myApp
ember generate service serviceOne
ember generate service serviceTwo
ember generate controller application
让这些更新
控制器/ application.js中
import Ember from 'ember';
export default Ember.Controller.extend({
init: function() {
var a = this.get('serviceOneService.testFunction');
}
});
初始化/服务 - one-service.js
个export default {
name: 'service-one-service',
initialize: function(container, app) {
app.inject('route', 'serviceOneService', 'service:service-one');
app.inject('controller', 'serviceOneService', 'service:service-one');
}
};
服务/服务one.js
import Ember from 'ember';
export default Ember.Object.extend({
testFunction: function(){
//How would I make a call to serviceTwo.testFunction here instead of returning 123
return "123"
}
});
服务/服务two.js
import Ember from 'ember';
export default Ember.Object.extend({
testFunction: function(){
return "Test function from service 2"
}
});
我的问题是如何注入到serviceOne服务中有两个和服务两个服务于一体。我会这样做,我如何从服务一访问服务二。在调用时我有一个如何将服务直接注入到所有控制器的想法,但是当我尝试注入testFunction中的另一个对象(服务)时,“this”指向窗口而不是一个ember对象。
我首先想到的是刚刚注入每一服务到全部测试服务命名空间,但我得到这个消息:
Uncaught Error: Cannot inject a `service:service-one` on other service(s). Register the `service:service-one` as a different type and perform the typeInjection.
你要试图将服务注入到对方吗? – tikotzky 2014-09-02 17:50:18