Page 75 - AngularJS权威教程
P. 75

8.2  向指令中传递数据   55


                  在这个流程中,给两个方向的绑定都添加一个文本输入字段。通过这两个输入字段可以方便                                           1
              地观察作用域是如何在DOM中通过原型继承链接在一起的 :
                                                                 ①
                  <label>Their URL field:</label>                                                    2
                  <input type="text"  ng-model="theirUrl">
                  <div my-directive
                       some-attr="theirUrl"
                       my-link-text="Click me to go to Google"></div>                                3
                  angular.module('myApp', [])
                  .directive('myDirective', function() {
                      return {                                                                       4
                          restrict: 'A',
                          replace: true,
                          scope: {                                                                   5
                              myUrl: '=someAttr', // 经过了修改
                              myLinkText: '@'
                          },
                          template: '\                                                               6
                          <div>\
                              <label>My Url Field:</label>\
                              <input type="text"\                                                    7
                                  ng-model="myUrl" />\
                              <a href="{{myUrl}}">{{myLinkText}}</a>\
                          </div>\
                      };                                                                             8
                  });
                  在线示例:http://jsbin.com/IteNita/1/edit。
                                                                                                     9
                  在Chrome开发者工具中一边在两个文本输入字段中输入内容,一边审查href属性的值,如
              图8-8所示,酷。                                                                              10


                                                                                                     11



                                                                                                     12


                                                                                                     13
                                             图8-8  Chrome开发者工具

                  除了将原来的文本输入字段添加回主HTML文档外,唯一的修改是用=绑定策略代替了@。                                          14

                  总地来说,这个例子展示了双向数据绑定的神奇效果,它是AngularJS的主要卖点之一。
                  了解内部指令的工作原理非常重要,这样才能在同自定义指令一起使用时把它们的行为考虑在内。                                        15

                  下一章我们会详细介绍AngularJS的内置指令,以便了解如何使用它们以及它们存在的意义。
                                                                                                     16
                  了解完内置指令,第10章将详细介绍创建自定义指令时的高级设置。

                  最后,我们会创建自定义指令,然后讨论应用架构,在这个话题中自定义和内置指令都非常                                           17
              重要。
              ——————————                                                                             18
                 ① 这个描述不是很准确,原型继承的机制应该是在AngularJS的JavaScript代码中而非DOM中实现的。——译者注
   70   71   72   73   74   75   76   77   78   79   80