Rumah  >  Artikel  >  hujung hadapan web  >  AngularJs自定义指令可以如何来设置以及自定义指令的命名规范

AngularJs自定义指令可以如何来设置以及自定义指令的命名规范

不言
不言asal
2018-07-21 16:27:241712semak imbas

AngularJS为我们提供了自定义指令的功能,通过此功能,我们可以自定义一些标签,为我们自己的开发来提供帮助。下面的内容我将给大家分享关于AngularJs通过directive和restrict来设置自定义指令的方法。

一、AngularJs自定义指令directive的restrict属性说明:

今天公用的html部分:

<h1 zym-blog></h1>

JavaScript部分:

var m = angular.module(&#39;app&#39;, []);
m.directive(&#39;zymBlog&#39;, [function(){
	return {
		restrict : &#39;AEC&#39;,
		template : &#39;<p>hello world</p>&#39;,
		replace : true
	};
}]);

通过directive设置自定义指令,第一个参数是指令名称,第二个参数是数组,包含一个回调函数,函数的返回值是一个json对象,其中:

restrict表示指令的形式:A是属性、E是元素、C是class类,为了避免和style中的class类混淆,不推荐使用C。

template是模板内容,表示使用这个自定义属性的标签中要插入的内容。

replace的值默认是false,如果是true,说明要用templace中的标签替换html代码中使用这个自定义指令的标签。注意,如果使用replace,那么template中必须包含html元素,不能只是几个文字,否则angular会报错。

下面再来看一个属性,templateUrl和template不能同时出现,templateUrl是引用的模板地址:

var m = angular.module(&#39;app&#39;, []);
m.directive(&#39;zymBlog&#39;, [function(){
	return {
		restrict : &#39;AEC&#39;,
		templateUrl : &#39;./46-1.html&#39;,
		replace : true
	};
}]);

注意,因为这里使用了replace,所以templateUrl对应的模板内容中必须包含html标签元素。

二、自定义指令的标准命名规范:

directive指令名称用驼峰命名法,例如【zymBlog】,那么在html代码中进行调用时,需要在大写字母之前加一个横杠,例如【zym-blog】。

三、自定义指令template函数式操作:

template不仅可以是一个字符串,也可以是一个函数,例如:

var m = angular.module(&#39;app&#39;, []);
m.directive(&#39;zymBlog&#39;, [function(){
	return {
		restrict : &#39;AEC&#39;,
		template : function(){
			return &#39;<p>赵一鸣个人技术博客</p>&#39;;
		},
		replace : true
	};
}]);

四、自定义指令transclude属性:

有一种情况,在html中使用了自定义指令,但是标签内部原来就有内容,这样的话,自定义指令里边的内容会把标签原来的内容替换掉,所以需要一个添加一个属性来解决这个问题(ng-transclude):

html部分:

<h1 zym-blog>赵一鸣博客http://www.zymseo.com</h1>

js部分:

var m = angular.module(&#39;app&#39;, []);
m.directive(&#39;zymBlog&#39;, [function(){
	return {
		restrict : &#39;AEC&#39;,
		template : function(){
			return &#39;<p>赵一鸣AngularJs学习笔记<span ng-transclude></span></p>&#39;;
		},
		replace : true,
		transclude : true
	};
}]);

设置ng-transclude的值为true之后,还必须在自定义指令的内部再加入一个标签,并且制定ng-transclude,这样是把原来html标签里边的内容放到这个标签里边!

相关推荐:

AngularJS自定义指令及指令配置项的实现技巧

AngularJS创建自定义指令的方法详解

Atas ialah kandungan terperinci AngularJs自定义指令可以如何来设置以及自定义指令的命名规范. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn