如何在模块配置中使用Angular.js服务实例并保持相同的实例
How to use Angular.js service instance inside module config and keep the same instance
我正试图在我的应用程序模块配置中使用一项服务,一项研究表明我需要使用注入器。
这工作得很好,只是当服务加载到控制器内部时,它不再是以前由注入器加载的实例。
有人知道如何获得相同的实例吗?或者有更好的方法吗?
我创建了一个plnkr来显示行为:http://plnkr.co/edit/BGUa3H
从文档-服务作为单一项
所有Angular服务都是应用程序单体。这意味着每个注入器仅为给定服务的一个实例。自从Angular对全球状态过敏致死,有可能创造多个注入器,每个注入器都有自己的给定服务实例,但是这是很少需要的,除非在测试中至关重要。
这意味着,如果您为单个注入器执行injector.get,它将始终返回类似以下的singleton
var injector = angular.injector(['app.services']);
var singletonService1 = injector.get('singletonService');
var singletonService2 = injector.get('singletonService');
console.log(singletonService1 === singletonService2) // prints true
但是,如果同时将它注入另一个控制器,则会创建一个全新的实例。
希望能有所帮助。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 通过Magento的网络服务检索运费
- KnockoutJS-组件-多个实例
- AngularJS:关于实例化服务
- angular.injector在每次调用时返回新的服务实例
- Angularjs 和 Jasmine :使用同一服务的多个实例进行测试
- Angularjs - 更改 html 页面时重新实例化服务
- 在AngularJS中实例化全局服务
- 如何在模块配置中使用Angular.js服务实例并保持相同的实例
- react/redux应用程序中的服务实例在哪里
- AngularJS-函数没有从服务中实例化
- 将当前控制器实例传递给模态服务
- 如何做:AngularJS服务或其他组件在模块加载时实例化
- 强制Angular 2子模块中的服务实例化(AngularJS运行块的替代方案)
- Angularjs中同一服务的多个实例
- 在AngularJS中自动创建服务实例(无延迟加载)
- 是AngularJS中声明式编程的工厂和服务实例
- 独立的angular工厂/服务实例