前端之家收集整理的这篇文章主要介绍了
Angular之指令Directive用法详解,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
项目筹备近期开启Angular学习,指令比较难理解所以记录备案,推荐视频大漠穷秋 Angular实战 由于篇幅过长,列举大纲如下:
一、指令directive概述
指令可以对元素绑定事件监听或者改变DOM结构而使HTML拥有像jQuery一样效果具有交互性。不同于jQuery,Angular设计核心思想是通过数据与模板的绑定,摆脱繁琐的DOM操作,而将注意力集中在业务逻辑上。
几种常见指令ng-app 指令用来指定ng的作用域是在那个标签以内部分(标签) ng-repeat迭代器指令可以重复标记元素、ng-show指令可以根据条件是否显示一个元素、ng-model指令具有双向数据绑定特性、ng-controller 用来声明一个需要和数据进行绑定的模板区域
二、自定义指令directive之模式匹配restrict
直接上代码体验一把,index.html
指令Directive.js
//
调用angular对象的module
方法来声明一个模块,模块的名字和ng-app的值对应
var myModule = angular.module('myModule',[]);
/* restrict 属性值说明 <推荐使用EA>
M 注释
*/
//指令--对元素绑定事件监听或者改变DOM
myModule.directive('hello',function(){
return {
restrict: 'EACM',templateUrl:'hello_Angular.html',/*template : '<p>Hello Angular</p>',*/
replace: true
}
})
==========================================================
restrict---匹配模式说明, 英文意思是"限制;约束;限定",这里指的是匹配我自定义的标签
==========================================================
•E 元素(element)
•A 属性(attribute)
•M 注释 注意!!!空格(不常用)
温馨tips: 推荐使用EC或EA匹配模式
replace 是否替换元素的模式 replace:true浏览器DOM结构如下
replace:false 或没有replace属性时浏览器DOM结构如下
三、指令之嵌套变换transclude
<html ng-app="myApp">
<Meta charset="UTF-8">
transclude 嵌套变换
<script type="text/javascript" src="framework/1.3.0.14/angular.js">
这里是内容哦.....
<script type="text/javascript">
var myApp = angular.module('myApp',[]);
myApp.directive('hello',function(){
return {
restrict: 'EA',template: '<p>Hello World!!!<b ng-transclude></b></p>',transclude: true,/*嵌套变换*/
replace: true /*替换*/
}
})