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
   446   447   448   449   450   451   452   453   454   455   456