我有一个基于核心服务的角度应用程序。
为了简化调试,我不必记住以下调用(来自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变量以便在控制台中进行调试的正确方法是什么?
答案 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;
});