• angular创建自定义指令的四种方式


      angular除了内置的部分指令,还可以通过.directive来自定义指令。要调用自定义指令,HTML 元素上需要添加自定义指令名。使用驼峰法来命名一个指令:nsHeader,在调用时使用需要-来分割:ns-header。自定义指令调用的的方式有四种,如下:

    • 元素名
    • 属性
    • 类名
    • 注释

    1、使用元素名调用:

     

     1 <!DOCTYPE html>
     2 <html ng-app="myApp">
     3 <head>
     4     <meta charset="utf-8">
     5     <script src="js/angular/angular.js" type="text/javascript" charset="utf-8"></script>
     6     <title>angular指令</title>
     7 </head>
     8 <body>
     9     <ns-header></ns-header>
    10     
    11     <script type="text/javascript">
    12         var app = angular.module("myApp", []);
    13         app.directive("nsHeader", function(){
    14             return {
    15                 template: "<header>这个是头部指令!</header>"
    16             };
    17         });
    18     </script>
    19 </body>
    20 </html>

     

     

    2、使用属性调用:

     1 <!DOCTYPE html>
     2 <html ng-app="myApp">
     3 <head>
     4     <meta charset="utf-8">
     5     <script src="js/angular/angular.js" type="text/javascript" charset="utf-8"></script>
     6     <title>angular指令</title>
     7 </head>
     8 <body>
     9     <div ns-header></div>
    10     
    11     <script type="text/javascript">
    12         var app = angular.module("myApp", []);
    13         app.directive("nsHeader", function(){
    14             return {
    15                 template: "<header>这个是头部指令!</header>"
    16             };
    17         });
    18     </script>
    19 </body>
    20 </html>

     

    3、使用类名调用:

     1 <!DOCTYPE html>
     2 <html ng-app="myApp">
     3 <head>
     4     <meta charset="utf-8">
     5     <script src="js/angular/angular.js" type="text/javascript" charset="utf-8"></script>
     6     <title>angular指令</title>
     7 </head>
     8 <body>
     9     <div class="ns-header"></div>
    10     
    11     <script type="text/javascript">
    12         var app = angular.module("myApp", []);
    13         app.directive("nsHeader", function(){
    14             return {
    15             restrict: 'C',
    16                 template: "<header>这个是头部指令!</header>"
    17             };
    18         });
    19     </script>
    20 </body>
    21 </html>

    注:你必须设置 restrict 的值为 "C" 才能通过类名来调用指令。

     

    4、使用注释调用:

     1 <!DOCTYPE html>
     2 <html ng-app="myApp">
     3 <head>
     4     <meta charset="utf-8">
     5     <script src="js/angular/angular.js" type="text/javascript" charset="utf-8"></script>
     6     <title>angular指令</title>
     7 </head>
     8 <body>
     9     <!-- directive: ns-header -->
    10     
    11     <script type="text/javascript">
    12         var app = angular.module("myApp", []);
    13         app.directive("nsHeader", function(){
    14             return {
    15                 restrict : "M",
    16                 replace : true,
    17                 template: "<header>这个是头部指令!</header>"
    18             };
    19         });
    20     </script>
    21 </body>
    22 </html>

    注:需要在该实例添加 replace 属性, 否则评论是不可见的。必须设置 restrict 的值为 "M" 才能通过注释来调用指令。调用时,注释内中的-和字母间需要添加空格,否则无法调用成功,例如<!--directive: ns-header-->则为错误调用方式。

     

      你也可以通过限制指令只能通过特殊的方式调用,例如限定只能通过属性的方式来调用:

     1 <!DOCTYPE html>
     2 <html ng-app="myApp">
     3 <head>
     4     <meta charset="utf-8">
     5     <script src="js/angular/angular.js" type="text/javascript" charset="utf-8"></script>
     6     <title>angular指令</title>
     7 </head>
     8 <body>
     9     <ns-header></ns-header><!--此种方式不生效-->
    10     
    11     <div ns-header></div><!--只能通过属性方式调用-->
    12     
    13     <script type="text/javascript">
    14         var app = angular.module("myApp", []);
    15         app.directive("nsHeader", function(){
    16             return {
    17                 restrict : "A",
    18                 template: "<header>这个是头部指令!</header>"
    19             };
    20         });
    21     </script>
    22 </body>
    23 </html>

    注:当指定restrict为"A"时,只能通过属性方式调用。

     

    restrict的值有以下四种,默认为E和A,即通过元素名和属性来调用指令:

    • E作为元素名使用
    • A作为属性使用
    • C作为类名使用
    • M作为注释使用

     本文参考地址:http://www.runoob.com/angularjs/angularjs-directives.html

  • 相关阅读:
    C# 图形普通处理,resize ,水印..
    图像处理 形态学 (腐蚀 膨胀 开闭运算 连通分量....)
    获取usb设备父系或子代
    aforge通过角点匹配图片相似度
    CentOS 手动增加、删除swap区
    Zabbix 中文使用手册
    CentOS7下Firewall防火墙配置用法详解
    CentOS7安装Zabbix
    宅男也可变形男-我是如何在11个月零27天减掉80斤的
    CentOS环境下使用GIT基于Nginx的私服搭建全过程
  • 原文地址:https://www.cnblogs.com/Luvletter/p/6816836.html
Copyright © 2020-2023  润新知