一、指令

指令directive是AngularJS的核心之一

包括
  - 用于扩展HTML元素、属性的指令
  - 执行特定功能的指令
  - 自定义指令 内置指令基本上都是以ng-开头

二、内置指令

1、属性指令

ng-href:代替a标记的href属性
ng-src:代替img等标记的src属性
ng-disabled:设置表单元素是否可用
ng-checked:设置选项是否选中
ng-readonly:设置文本元素是否只读
ng-selected:设置下拉选项是否选中
ng-class:设置class属性
ng-style:设置style属性,应该是对象或JSON

2、功能指令

ng-app:设置当前元素是 AngularJS根元素

ng-controller:用于为应用添加控制器

ng-include:用于包含外部的HTML文件

ng-if:用于在表达式为false时移除HTML元素

ng-switch:根据表达式显示或隐藏对应的部分

ng-repeat:用于循环输出指定次数的HTML元素

ng-init:执行给定的表达式

ng-bind:使用给定的变量或表达式的值来替换HTML元素的内容

ng-bind-template:与上类似,可绑定多个

ng-cloak:用于在应用加载时防止代码未加载完而出现AngularJs表达式的问题

ng-model:用于绑定表单元素到作用域变量中(双向绑定)

ng-hide/ng-show:在表达式为true时隐藏/显示HTML元素

ng-form:增强HTML表单

ng-change:类似于onchange事件

ng-click:类似于onclick-事件

ng-submit:类似于onsubmit事件

三、自定义指令

1、概述

使用directivej方法可以自定义指令,语法:模块对象.directive(“指令名”,[注入内容,回调函数]);

指令名采用骆驼命名法,使用时将驼峰名称改写为短横线连接的名称,如定义时为: itFirst,则使用时为it-first;第一个词不建议使用ng

回调函数返回一个JSON对象,该对象包括了自定义指令的配置,即指令对象定义

指令对象定义是一个JSON格式,包含大量指令配置项

2、指令的生命周期

加载阶段:以ng-app为入口,确定 EAngularJSt的应用范围

编译阶段:遍历应用范围,找到所有指令,根据指令的定义进行DOM转换(由template、templateUrl、replace等配置项决定),如果指令有compile函数则调用

链接阶段:应用范围内的每条指令运行link函数,如果有DOM操作,也应该在link函数中执行

3、指令配置项

restrict:字符串,指令以何种形式使用,‘A’ 表示属性Attribute , ‘E’ 表示元素Element 、 ‘C’ 表示类Class 、‘M’ 表示注释Comment( 需加directive:),也可以是它们的组合形式。默认值为AE ,可以通过元素名和属性名来调用指令。

template:一段HTML 文本或返回一个HTML 文本的函数,用来填充指令内容,当replace为true时结果必须有且仅有一个根元素 。如果页面中多个指令的模板基本相同,可以使用$templateCache 进行缓存后再使用

replace:布尔,是否替换原有元素,默认false

templateUrl:指定外部模板文件的路径,或返回路径的函数,用于代替template

transclude:是否包含原有内容,设置为true 时,可在template中使用ng-transclude指令获取原有内容,即需要 配合ng-transclude 指令使用

priority:指定同一元素上多个指令的controller调用的优先级,数值类型,值越大优先级越高,默认为0

terminal:同一元素上优先级比本指令低的指令或低层次的指令是否执行,布尔类型

scope:表示指令的作用域,取值有三种(false 、true 、{} 空对象),false 表示继承父作用域,同一个作用域;默认值true表示从父作用域继承并创建一个新作用域;{} 空对象表示隔离作用域,默认无法访问父作用域,但可以通过配置绑定( 隔离) 策略,

将父作用域中指定数据绑定到隔离作用域中,绑定策略有三种形式:@:单向,父作用域影响隔离作用域,将属性作为字符串传递;=:双向, 父作用域与隔离作用域相互影响,将属性按原类型传递;&:方法的访问形式,注意传参数的写法,

必须以对象形式传递可以在以上符号的后面指定绑定的名称( 属性名),也可省略简写

link:回调函数,用于处理数据、DOM,可以接受四个参数,分别是作用域scope、元素element、属性attribute、依赖的其它指令控制器controller;出于通用性考虑,scope提供$apply(“ 函数名()”)的形式调用函数,函数名可通过属性传递

controller:不同于之前的控制器,是指令自身的控制器,用于向外部公开指令所具有的方法

require:字符串,表示所依赖的其它指令名称,此时会将其它指令的控制器注入进link函数,作为第4个参数;指令名称前可以添加符号:^ 表示会在上层指令中查找,?表示找不到则传入null,可以组合成?^

AngualrJS之自定义指令的更多相关文章

  1. AngularJS -- 指令(创建自定义指令)

    点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/   什么是指令 注:本指南是针对已经熟悉AngularJS基础知识的开发人员.如果你才刚 ...

  2. Angular的自定义指令以及实例

    本文章已收录于:  AngularJS知识库  分类: javascript(55)  http://www.cnblogs.com/xiaoxie53/p/5058198.html   前面的文章介 ...

  3. vue自定义指令

    Vue自定义指令: Vue.directive('myDr', function (el, binding) { el.onclick =function(){ binding.value(); } ...

  4. ng-repeat里创建的自定义指令

    在ng里,所有的指令在按照意愿正常工作之前的都需要编译一下,包含angularJS的自定义指令. ng模板里的所有指令都会在angularJS加载完毕之后编译一下,所以那些自定义指令和事件才能工作. ...

  5. angular 自定义指令 directive transclude 理解

    项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象 ...

  6. Vue - 自定义指令

    1.Vue.directive(id,definition)注册一个全局自定义指令,接收两个参数,指令ID以及定义对象 2.钩子函数:将作用域与DOM进行链接,链接函数用来创建可以操作DOM的指令 b ...

  7. AngularJS笔记--自定义指令

    在前端开发中, 我们会遇到很多地方都会用到同一种类型的控件.AngularJS提供了自定义指令功能,我们可以在指令里面定义特定的html模板.提供给前台html调用. 一. 指令的简单定义.  下面定 ...

  8. Angular自定义指令(directive)

    angular自定义指令,意我们可以通过angula自己定义指令,来实现我们的特殊要求,为所欲为,一支穿云箭,千军万马来相见 多少年的老规矩了,先看代码: <!DOCTYPE html> ...

  9. angularjs自定义指令

    my-directive为指令名称,thisdata为绑定的数据 <span ng-repeat="act in move.casts" style="positi ...

随机推荐

  1. 深入了解SQL的四种连接&不然要命的!

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...

  2. 对filter的初步认识

    Filter 技术是servlet 2.3  新增加的功能.servlet2.3是sun公司 于2000年10月发布的,它的开发者包括许多个人和公司团体,充分体现了sun公司所倡导的代码开放性原则.在 ...

  3. SEO基础内容

     学习SEO人群 网络设计师 网站站长 搜索引擎相关人员 网络营销顾问 企业主 搜索引擎 Yahoo msn google baidu SEM包括SEO,竞价排名等 搜索引擎爬虫流程 派出爬虫-> ...

  4. $refs的用法及作用

    获取DOM元素,一般用document.querySelector获取这个dom节点,然后在获取input的值 但是用ref绑定之后,就不需要在获取dom节点了,直接在上面的input上绑定input ...

  5. Python——使用高德API获取POI(以深圳南山医疗保健服务POI为例)

    以下内容为原创,转载请注明出处. import xlwt #创建Excel,见代码行8,9,11,25,28:CMD下:运行pip install xlwt进行安装 import urllib.req ...

  6. Linux 文本去重 之 命令sort 与 uniq

    sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序 ...

  7. [NLP] 酒店名归类

    目标: 我们内部系统里记录的酒店名字是由很多人输入的,每个人输入的可能不完全一样,比如,‘成都凯宾斯基大酒店’, ‘凯宾斯基酒店’, ‘凯宾斯基’, 我们的初步想法是能不能把大量的记录归类,把很多相似 ...

  8. NIO学习

    1. NIO客户端与服务端网络编程关键: 理解各个监听事件的驱动事件,总结以下几点: (1)ServerSocketChannel注册了OP_ACCEPT事件,需要客户端发起连接请求,服务端selec ...

  9. 【nginx】中server配置说明

    server { listen 80; //监听的端口号 server_name localhost; //用域名方式访问的地址 #charset koi8-r; //编码 #access_log / ...

  10. SQLServer如果查询表相关的视图以及存储过程

    最近在维护一个电商平台,需要对订单表增加字段,但是在review代码的时候发现这个平台的代码写的很有提升价值,且大量的使用了识图和存储过程,所以也给刚接触这个平台的萌新,也就是瓦,造成了不小的困扰,毕 ...