Page 451 - AngularJS权威教程
P. 451
33.2 调试器 431
33.1.1 scope() 19
在元素上使用scope()方法时,可以从该元素(或者父元素)上提取它的$scope对象:
20
var scope = ele.scope();
使用元素的作用域时,可以检查任意作用域属性,比如在控制器中设置给作用域对象的自定
21
义变量。还可以窥探元素,查看它的$id、$parent对象、设置给它的$$watchers,甚至是手动
遍历它的作用域链。
22
33.1.2 controller()
23
通过使用controller()方法可以提取当前元素(或者父元素)的控制器:
var ctrl = ele.controller();
// 或者 24
var ctrl = ele.controller('ngModel');
25
33.1.3 injector()
通过在被选中的元素上使用injector()方法可以提取当前元素(或者包含它的元素)的注 26
入器。
var injector = ele.injector();
27
然后可以使用这个注入器在应用内实例化任意Angular对象,比如服务、其他控制器或者任
意其他对象。
28
33.1.4 inheritedData()
29
通过在元素上使用inheritedData()方法可以提取与该元素$scope对象关联的数据。
ele.inheritedData(); 30
这个inheritedData()方法就是Angular在作用域链中查找数据的方式,它会遍历DOM直到
找到一个特定的值或者直到找到最顶层的作用域。 31
如果你使用Chrome,可以使用开发者工具提供的一些快捷方式。比如要简单地 32
查找你所感兴趣的元素,只需在浏览器中右击,然后选择审查元素。这个元素
本身存储在一个叫做$0的变量中,然后你可以通过调用angular.element($0)
的方式提取被Angular化的元素。 33
33.2 调试器 34
①
Google的Chrome 浏览器有自己的调试器工具,它可以在我们的代码中创建断点。使用 35
debugger语句会导致浏览器冻结代码执行,这就允许我们检查真实应用程序内正在运行的代码,
—————————— 36
① https://www.google.com/chrome