angular.js自定义指令

   angular.js最为强大的地方在于可以通过自定义指令来扩展html元素,这种思路与JSP的taglib类似,但在实现细节上更为自由,并且自定义指令也可以提供表单元素交互、数据绑定、事件处理功能。

  创建自定义指令的基本格式为:

angular.module('myApp',[]).directive('myDirective',function(){
				return {
					restrict :'EA',
					scope:true,
					template:``//ES6多行字符支持,模板文本字符串,也可使用templateUrl
					replace:true,
					transclude:true,
					link:function(){
						//DOM operates.
					}
				}
			})

1.指令行为限制

A:用于限制属性,例如

E:用于限制元素,即可直接使用该指令作为html标签使用

C:用作html元素的class类。

2.指令作用域

最简单的做法是在创建自定义指令时将scope属性设置为 true从而共享父作用域,缺点是无法避免指令中修改父作用域的值。因此,通常的做法是为指令添加隔离作用域。在隔离作用域中,以下三个运算符的使用较为重要:

@:取DOM节点的属性值到隔离作用域中使用,

=:将$scope中的属性值与隔离作用域中的值进行双向绑定,

&:将$scope中的函数绑定到隔离作用域中(仅适用于函数)。

3.链接函数

自定义指令中可通过link函数修改DOM,通常被设置为一个postLink函数,实际上还可以设置一个preLink函数用于在元素链接之前执行。

 

以下示例提供了较为复杂的自定义指令,包含上述所有语法要点:



	
		
		Event key	
		
	

	
        
{{text}}

你可能感兴趣的:(Js开发)