用于排除未初始化的angularjs控制器的调试技术

时间:2014-01-14 13:25:04

标签: angularjs

我遇到了一个我正在研究的角度应用程序的问题。我已经定义了一个控制器,它将一个变量添加到范围中。页面加载后,我可以看到范围没有变量 - 当我尝试在chrome dev工具中检查它时,它返回一个未定义的。我在控制器代码中设置了一个断点来初始化变量,我可以看到它没有被击中。我检查了javascript错误,但没有。

但现在我卡住了 - 我不知道如何继续调试这个问题。为什么在页面上使用ng-controller指令指定的控制器不能初始化?有哪些技术可用于调试此类问题?

更新:我已经尝试过batarang - 没有帮助。当我尝试在batarang中启用检查时,它会重新加载页面。我能够使用ng-book(https://www.ng-book.com/p/Debugging-AngularJS/)中指定的技术检查范围,但我仍然没有取得多大进展。

2 个答案:

答案 0 :(得分:2)

最后找出了问题:有两个问题:

  1. angular auto bootstrap - DOM中有两个嵌套元素,它们试图进行自动引导。根据文档不支持此功能。
  2. 角度引导程序在DOM完成加载之前就已经开始了。
  3. 所以我们使用requirejs的domready插件来推迟角度自举,直到dom准备就绪。

答案 1 :(得分:0)

尝试使用Chrome扩展程序Batarang,它扩展了开发人员工具。它适用于调试范围,型号和放大器。的依赖关系。

https://github.com/angular/angularjs-batarang/

https://chrome.google.com/webstore/detail/ighdmehidhipcmcojjgiloacoafjmpfk

<强>更新

刚刚发现这个,javascript堆栈跟踪Spy-js

https://github.com/spy-js/spy-js

http://spy-js.com/