指令  

概述:

  前面也说过一些常用指令,用于快速入门。现在详细总结一下:指令用于实现各种页面的操作,是对于底层DOM操作的封装,扩展了HTML的行为,实现页面交互以及数据绑定。

  指令是一种执行的信号,一旦发布了指令,就要执行某项动作。就像我们军训的时候,一个口令一个动作。而常用的指令是固定的,如果我们有一些特殊的需要,这时候要自定义指令,没有条件就要自己创造条件嘛。

基本语法: 

  var app=angular.module('myApp',[ ]);

  app.directive(name,fn);

  其中,name是指令名称,使用驼峰命名法。fn是一个函数,它将返回一个对象,在这个对象中,定义了这个新增指令的全部行为。fn返回一个对象,该对象包含几个特有的属性:restrict(指定自定义指令的使用方法AECM),template(该指令实际对应的HTML内容)。

如何使用:

  E:<ts-hello></ts-hello>     (定义指令的时候,必须是驼峰式,调用时:前部分+‘-’+后部分(不用首字母大写))

  A:<div ts-hello></div>

  C: <div class='ts-hello'></div>
  M: <!-- directive:ts-hello     (replace:true)

带参的自定义指令:

  只需要在第二个参数返回时候,加上scope,指定对象 对象的名字testName,值‘@’

练习:自定义指令以及传参,显示hello angularJs

 <!DOCTYPE html>
 <html ng-app="myApp">
 <head lang="en">
   <meta charset="UTF-8">
   <title></title>
   <script src="js/angular.js"></script>
 </head>
 <body ng-controller="myCtrl">
 <!--通过以元素的方式 调用自定义指令-->
 <my-directive ts-name="Hello AngularJs"></my-directive>
 <!--扩展属性-->
 <div my-directive ts-name="Hello AngularJs"></div>
 <!--class-->
 <div class="my-directive" ts-name="Hello AngularJs"></div>

 <script>
 //模块的声明
   var app = angular.module('myApp',['ng']);
 //自定义指令
 //  E-->Element A-->Attribute  C-->Class M-->Comment
   app.directive('myDirective', function () {
     return{
       restrict:'EACM',
       replace:true,
 //    通过双花括号 显示tsName值
       template:'<p>{{tsName}}</p>',
 //    通过@读取
       scope:{
         tsName:'@'
       }
     }
   });
     //控制器的声明
   app.controller('myCtrl', function ($scope) {

   });
 </script>
 </body>
 </html>

AngularJs学习笔记3——自定义指令的更多相关文章

  1. AngularJS学习笔记(四) 自定义指令

    指令(directive)是啥?简单来说就是实现一定功能的XXX...之前一直用的ng-model,ng-click等等都是指令.当我有一个ng没提供的需求的时候,就可以自定义个指令.指令的好处显而易 ...

  2. AngularJs学习笔记5——自定义服务

    前面整理了AngularJs双向数据绑定和自定义指令的相关内容,从手册上看也知道,ng部分还包括过滤器和函数,以及服务等. 过滤器:filter,就是对数据进行格式化,注意管道格式,例如: {{表达式 ...

  3. 【AngularJS学习笔记】01 指令、服务和过滤器

    AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-. 比如: ng-app 指令初始化一个 AngularJS 应用程序.注意ng-app一般为空,如果值不为空,就得加这样一句代码va ...

  4. AngularJs学习笔记--Forms

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...

  5. AngularJs学习笔记--html compiler

    原文再续,书接上回...依旧参考http://code.angularjs.org/1.0.2/docs/guide/compiler 一.总括 Angular的HTML compiler允许开发者自 ...

  6. AngularJs学习笔记--concepts(概念)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...

  7. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

  8. angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令

    在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...

  9. AngularJs学习笔记--Managing Service Dependencies

    原版地址:http://docs.angularjs.org/guide/dev_guide.services.managing_dependencies angular允许service将其他ser ...

随机推荐

  1. 命令行修改linux系统IP

    修改配置文件/etc/sysconfig/network-scrips/ifcfg-eth0.因为机子启动的时候加载的就是这个文件的配置参数.对这个文件进行修改:   [root@localhost ...

  2. [小技巧] Python 脚本暴力破解 HC2600 机顶盒管理密码

    家里最近接入了广电有线电视,配了三个创维 HC2600 机顶盒,并且每个机顶盒还带有无线路由器功能. 免费赠送 Internet 接入服务倒也没什么,不过机顶盒内置的 WIFI 实在有点寒酸:只支持 ...

  3. gcc总结【基本用法】【选项】【动静态库】(转)

    1.////////////////////////////////////////////////////////////////////////////////////////////////// ...

  4. css行高line-height的用法(转)

    本文导读: “行高“指一行文子的高度,具体来说是指两行文子间基线间的距离.在CSS,line-height被用来控制行与行之间的垂直距离.line- height 属性会影响行框的布局.在应用到一个块 ...

  5. 锚点链接和hash属性

    相信大家挺经常见过这样一个效果.有一个很长很长的页面,分成好几部分,目录中一点击,就能定位到页面某个位置. 例如:有这样一个目录,例如你点击一下“HTML”,就会直接跳转到“HTML”的页面位置 这就 ...

  6. UILable  /  UITextField  /   UIButton

    // 获取屏幕大小的view UIView *contentView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; // ...

  7. C#SaveFileDialog的使用

    SaveFileDialog sfd = new SaveFileDialog(); //默认打开的路径 sfd.InitialDirectory = "C:\\Users\\Adminis ...

  8. java新版中唤醒指定线层对象

    import java.util.concurrent.locks.*; class Do9 { public static void main(String[] args) { Resource r ...

  9. javascript使用for循环批量注册的事件不能正确获取索引值的解决方法

    今天遇到一个问题,那就是当使用for循环批量注册事件处理函数,然后最后通过事件处理函数获取当前元素的索引值的时候会失败,先看一段代码实例: <script type="text/jav ...

  10. 机器学习理论与实战(十)K均值聚类和二分K均值聚类

    接下来就要说下无监督机器学习方法,所谓无监督机器学习前面也说过,就是没有标签的情况,对样本数据进行聚类分析.关联性分析等.主要包括K均值聚类(K-means clustering)和关联分析,这两大类 ...