如何为可在控制台中检查的角度服务创建变量?

时间:2014-08-08 01:36:50

标签: javascript angularjs debugging

我有一个基于核心服务的角度应用程序。

为了简化调试,我不必记住以下调用(来自how to debug angular services in browser):

tasks = angular.element(document.body).injector().get('tasks');

所以我的第一个想法是将这个语句粘贴在我的index.html中的脚本标记中,但如果我这样做,则会失败并带有

Uncaught TypeError: Cannot read property 'get' of undefined

我一直在寻找相当于jQuery的文档,但似乎并不是Angular的方式。 Angular方式似乎是这样的构造(来自https://plus.google.com/+MicahGodbolt/posts/CiKyN2YUafM):

angular.module('mushin', []).run(function() {
  window.tasks = angular.element(document.body).injector().get('tasks');
})

然而,这给了我同样的错误。

将角度服务转换为javascript变量以便在控制台中进行调试的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以将tasks服务附加到widow对象的任何位置。在上面使用run()方法的示例中,您只需要将tasks服务作为依赖项添加到函数中,如下所示:

angular.module('mushin', []).run(function(tasks) {
  window.tasks = tasks;
});

它现在失败了,因为在进入run方法时,没有任何东西绑定到body元素,所以你还没有注入器。

执行此操作的“更有棱角的方式”还取决于$window服务,因此您的回调变为:

angular.module('mushin', []).run(function($window, tasks) {
  $window.tasks = tasks;
});