如何在浏览器中调试角度服务

时间:2013-01-11 12:36:33

标签: angularjs

我在我的角度应用程序中创建了一个工厂/服务。

我想在浏览器中调试它。有没有办法可以访问它的实例并检查其功能和变量的值。

可以使用

访问角度范围
angular.element(e).scope()

是否有类似的方式访问工厂?

5 个答案:

答案 0 :(得分:66)

我相信你可以使用这样的东西:

angular.element(e).injector().get('serviceName')

由于angularjs服务是单例,因此在任何 angular.element 上执行此操作将始终返回相同的服务实例/对象。

答案 1 :(得分:8)

将您的服务注入任何控制器,然后console.log(myService);

Fiddle

答案 2 :(得分:6)

像@bmleite所说,你可以使用:

angular.element( {DOM element} ).injector().get('serviceName')

您可以选择所需的DOM元素(使用Chrome开发者工具上的“元素”标签或Firefox / Firebug上的“HTML”标签),然后使用$ 0在“控制台”标签中指向它。

要选择的最简单的元素是你有ngApp指令的元素。 最终的代码是:

var myService = angular.element($0).injector().get('serviceName');

然后你可以访问他所有的变量和函数:

myService.getConfig('dev');

答案 3 :(得分:4)

尝试ng-inspect chrome扩展程序。

控制台中的

$ get('serviceName')将返回服务或工厂实例。

答案 4 :(得分:3)

我不确定如何检查服务,但 Angular Batarang 是一个很棒的Chrome扩展程序,用于调试Angular应用程序。可能会有帮助。

https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk

Batarang的有用文档:

http://www.c-sharpcorner.com/UploadFile/9c2805/getting-started-with-angularjs-batarang/