使用燼,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