标签:api 操作dom 渲染 内容 举例 app 默认 val 组件
指令无外乎增强了 HTML,提供额外的功能
以上的指令基本上已经可以满足我们的绝大多数需要了
少数情况下我们有一些特殊的需要,可以通过自定义指令的方式实现。从更高的层次上说,指令是DOM元素上的一些标记(例如: 属性,元素名称,注释和一些CSS的类)用于转换DOM元素的内部或者对DOM元素进行一些行为上的绑定。
注意事项
angular.module(‘moduleName‘,[]).directive(name, directiveFactory);
angular.module
可以使用链式编程的形式,返回模块本身,可定义多个指令。myDirective
, 使用的时候用匈牙利命名法:my-directive
对return中的一些常用选项的说明 ,官方文档的说明(访问不了,可能是因为文档上的路由设置,需要一层层的点进去查看),就不再举例了。
scope : 规范指令的作用域的问题,如果没写,ng中默认的是放在根作用域中的,一般每个控制器就会有一个作用域,每个指令也会存在一个作用域,并且作用域存在继承关系,我们为了规范作用域,可以在自定义指令中有一个scope选项,在scope内部定义一些属性。下面是示例代码。
html结构:
<div ng-app=‘myApp‘><haha title=‘hello‘ data=‘world‘></haha></div>
javascript结构:
angular.module(‘myApp‘,[])
.directive(‘haha‘,[function(){return {
scope:{
title:‘@‘,
data:‘@‘
},
template:‘{{title}} {{data}}‘
}
}])
代码输出 hello world 其中 @
表示 scope中的属性值,引用了使用自定义指令的DOM元素的属性值。
restrict : 用于指定自定义指令的类型。 A,表示只匹配属性。E,表示只匹配元素。C,表示只匹配类名。AEC,表示三种都可以作为匹配项。而M,匹配注释指令,已经被高版本抛弃使用了,我们推荐使用A和E。
link:function(scope, element, attrs){}
scope代表的是当前指令的作用域,element代表当前元素,attrs代表元素的属性,在里面用的是jqlite里面的api。备注,如果只去操作dom,那么我们只需要return一个函数就行了,不用 link选项了。标签:api 操作dom 渲染 内容 举例 app 默认 val 组件
原文地址:http://www.cnblogs.com/yu-709213564/p/6156106.html