如何在另一个服务中使用一个服务
Ember.js - How can I use a service in another service?
我已经设置了两个服务,如下面的初始化器所示:
/* Service Initaializers */
var Initaializer = {
name: 'Services',
initialize: function(Container, App) {
/* Inject Session Service In To All Routes And Controllers */
App.inject('route', 'Session', 'service:session');
App.inject('controller', 'Session', 'service:session');
/* Inject Debug Service In To All Routes And Controllers */
App.inject('route', 'Debug', 'service:debug');
App.inject('controller', 'Debug', 'service:debug');
}
};
/* Export */
export default Initaializer;
我可以从我的路由/控制器用户this.Session
和this.Debug
访问会话服务和调试会话。
我遇到的麻烦是从会话服务访问调试服务中的任何功能。
应用程序/服务/debug.js
/* Debug Service */
var Service = Ember.Object.extend({
/* Start Debug */
init: function() {
console.log('Debug Started!'); // This does appear in the console.
},
logSomething: function(i) {
console.log(i); // This does work from all routes/controllers.
}
});
/* Export */
export default Service;
应用程序/服务/sessions.js
/* Session Service */
var Service = Ember.Object.extend({
/* Start Session */
init: function() {
console.log('Session Started!'); // This does appear in the console.
this.Debug.logSomething('Test'); // This gives an error.
},
sayHi: function() {
console.log('Hello From The Session Service'); // I does work from all routes/controllers.
}
});
/* Export */
export default Service;
给出控制台错误的行是this.Debug.logSomething('Test');
。
错误为:Uncaught TypeError: Cannot read property 'logSomething' of undefined
为了从一个服务访问另一个服务中的函数,我需要做什么?
你只把这些对象注入到路由和控制器中。如果你想让它们可访问的话你需要互相注入
好的,所以我相信这是可能的。你只需要将Debug对象注入到会话1中。
你可以这样做:
首先注册你的工厂:
App.register('utils:debug', App.Debug);
App.register('service:session', App.Session);
然后在会话中注入debug in:
App.inject('service:session', 'debug', 'utils:debug');
或者你可以把debug注入到所有的服务中:
App.inject('service', 'debug', 'utils:debug');
相关文章:
- 从AngularJS中的另一个文件中的控制器访问服务
- 在http服务单元测试中使用request-js时,chai.request不是一个函数
- AngularJS服务函数调用另一个函数
- 在一个服务中引用多个API调用(Angular)
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- AngularJS - 一个文件中的控制器和服务
- 在angularJS中合并来自一个服务的两个数组
- 使用DOM中的信息创建一个控制器/服务来持久化数据
- 通过javascript调用一个C#windows服务函数
- 一个在线服务,我可以查询一个随机的历史人物的名字
- Azure移动服务;插入到另一个表&呼叫'插入'剧本
- 需要将服务/工厂存储为一个值
- 如何在使用typescript的另一个服务中的一个角度服务中使用$rootScope define
- 为一个像球一样的凌空抽射服务
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- 当我把服务放在另一个文件上时,Angular会抛出一个错误
- 在Angular 2中的另一个服务中注入自定义服务
- 使用Web服务根据对另一个下拉框的选择填充第二个下拉框以获取信息
- Wordpress创建一个自定义休息服务
- 它有一个库或Web服务,可以为我的javascript应用程序提供夏令时数据