AngularJS 指令

1.  AngularJS指令的特点:

  • AngularJS通过被称为指令的新属性来扩展HTML,指令的前缀为ng-。
  • AngularJS通过内置的指令来为应用添加功能。
  • AngularJS允许你自定义指令。

2.  下面介绍下常见的AngularJS指令:

  • ng-app指令:定义了AngularJS 应用程序的根元素。在网页加载完毕时会自动引导(自动初始化)应用程序。
  • ng-init指令:为 AngularJS 应用程序定义了初始值。通常情况下,不使用 ng-init。您将使用一个控制器或模块来代替它。
  • ng-model指令:绑定HTML元素到应用程序数据。也可以为应用程序数据提供类型验证(number、email、required)、为应用程序数据提供状态(invalid、dirty、touched、error)、为 HTML 元素提供 CSS 类、绑定 HTML 元素到 HTML 表单。
  • ng-repeat指令:对于集合中(数组中)的每个项会克隆一次HTML元素。
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="js/angular.min.js"></script>
        </head>
    
        <body ng-app="">
            <div ng-init="quantity=1;price=5"></div>
            <h2>价格计算器</h2>
            数量: <input type="number" ng-model="quantity">
            价格: <input type="number" ng-model="price">
    
            <p><b>总价:</b> {{quantity * price}}</p>
            
            <div ng-init="students=[
                {name:'小明',class:'一年级一班'},
                {name:'小红',class:'一年级二班'},
                {name:'小方',class:'一年级三班'}
            ]">
                <p>循环对象</p>
                <ul>
                    <li ng-repeat="x in students">
                        {{x.name+" "+x.class}}
                    </li>
                </ul>
            </div>
        </body>
    </html>

     

 

3.  创建自定义的指令:

  • 除了 AngularJS 内置的指令外,我们还可以创建自定义指令。
  • 我们可以使用  .directive  函数来添加自定义的指令。
  • 要调用自定义指令,HTML 元素上需要添加自定义指令名。
  • 使用驼峰法来命名一个指令,myDirective,但是在使用的时候要用-分割开,my-directive。
  • 使用自定义指令有四种方式,可以通过restrict属性来限制使用,E 作为元素名使用、C 作为类名使用、A 作为属性使用、M 作为注释使用。
    • 通过元素名:
      <my-directive></my-directive>
    • 通过类名:必须设置 restrict 的值为 "C" 才能通过类名来调用指令。
      <div class="my-directive"></div>
    • 通过属性:
      <div my-directive></div>
    • 通过注释:我们需要在该实例添加 replace 属性, 否则是不可见的。
      <!-- directive: my-directive -->

       

  • 案例展示:这里是通过元素名的方式来使用自定义指令,别的方式大家可以自行尝试。
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="js/angular.min.js"></script>
        </head>
    
        <body ng-app="myApp">
            <my-directive></my-directive>
            
            <script>
            var app = angular.module("myApp", []);
            app.directive("myDirective", function() {
                return {
                    template: "<h1>这是我的自定义指令!</h1>"
                };
            });
        </script>
        </body>
    </html>

     

     

posted @ 2017-01-06 14:47  王甘林  阅读(180)  评论(0编辑  收藏  举报