我有这样的服务:
angular.module('app').factory('ExampleService', function(){ this.f1 = function(world){ return 'Hello '+world; } return this; })
我想 从 JavaScript 控制台测试它 并调用f1()服务的功能。
f1()
我怎样才能做到这一点?
angular.element(document.body).injector().get('serviceName')
AngularJS 使用 依赖注入 (DI) 将服务/工厂注入到您的组件、指令和其他服务中。所以获取服务需要做的是首先获取AngularJS的 注入 器(注入器负责连接所有的依赖关系并将它们提供给组件)。
要获取应用程序的 注入器 ,您需要从 Angular 正在处理的元素中获取它。例如,如果您的应用在您调用的 body 元素上注册injector = angular.element(document.body).injector()
injector = angular.element(document.body).injector()
从检索到的injector内容中,您可以获得您喜欢的任何服务injector.get('ServiceName')
injector
injector.get('ServiceName')
获取$scope特定元素的另一个有用的技巧。 使用开发人员工具的DOM 检查工具 选择元素,然后运行以下行($0始终是选定元素): angular.element($0).scope()
$scope
$0
angular.element($0).scope()