我在我的 Angular 应用程序中创建了一个工厂/服务。
我想在浏览器中调试它。有没有办法我可以访问它的实例并检查它的函数和变量的值是什么。
角度范围可以使用
angular.element(e).scope()
有没有类似的方式来访问工厂?
我在我的 Angular 应用程序中创建了一个工厂/服务。
我想在浏览器中调试它。有没有办法我可以访问它的实例并检查它的函数和变量的值是什么。
角度范围可以使用
angular.element(e).scope()
有没有类似的方式来访问工厂?
我相信你可以使用这样的东西:
angular.element(e).injector().get('serviceName')
而且由于 angularjs 服务是单例的,因此在任何angular.element上执行此操作将始终返回相同的服务实例/对象。
将您的服务注入任何控制器,然后console.log(myService);
小提琴。
就像@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');
尝试ng-inspect chrome 扩展。
控制台中的 $get('serviceName') 将返回服务或工厂实例。
我不确定它是如何检查服务的,但是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/