学习AngularJs:Directive指令用法(完整版)
本教程使用AngularJs版本:1.5.3 AngularJs GitHub: https://github.com/angular/angular.js/ AngularJs下载地址:https://angularjs.org/ 摘要:Directive(指令)笔者认为是AngularJ非常强大而有有用的功能之一。它就相当于为我们写了公共的自定义DOM元素或CLASS属性或ATTR属性,并且它不只是单单如此,你还可以在它的基础上来操作scope、绑定事件、更改样式等。通过这个Directive,我们可以封装很多公共指令,比如分页指令、自动补全指令等等。然后在HTML页面里只需要简单的写一行代码就可以实现很多强大的功能。一般情况下,需要用Directive有下面的情景: 一、Directive的定义及其使用方法 angular.module("app",[]).directive("directiveName",function(){ return{ //通过设置项来定义 }; }) Directive可以放置于元素名、属性、class、注释中。下面是引用myDir这个directive的等价方式。(但很多directive都限制为“属性”的使用方式) lt;span lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;directive-namelt;/spangt;lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;="exp"gt;lt;/spangt;//属性lt;/spangt; lt;span class="lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;directive-namelt;/spangt;: exp;"gt;lt;/spangt;//class lt;lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;directive-namelt;/spangt;gt;lt;/lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;directive-namelt;/spangt;gt;//元素 lt;!-- directive: lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;directive-name lt;/spangt;lt;span style="font-family: Arial, Helvetica, sans-serif;"gt;exp --gt;//注释lt;/spangt; 如下一个实例 : lt;!DOCTYPE htmlgt; lt;html lang="zh" ng-app="myApp"gt; lt;headgt; lt;meta charset="UTF-8"gt; lt;titlegt;AngularJS入门学习lt;/titlegt; lt;script type="text/javascript" src="./1.5.3/angular.min.js"gt;lt;/scriptgt; lt;/headgt; lt;bodygt; lt;hello-worldgt;lt;/hello-worldgt; lt;/bodygt; lt;script type="text/javascript"gt; var app = angular.module('myApp', []); app.directive('helloWorld', function() { return { restrict: 'E', template: 'lt;divgt;Hi 我是林炳文~~~lt;/divgt;', replace: true }; }); lt;/scriptgt; lt;/htmlgt; 结果:
下面是一个directive的详细版 var myModule = angular.module(...); myModule.directive('directiveName', function factory(injectables) { var directiveDefinitionObject = { priority: 0, template: 'lt;divgt;lt;/divgt;', templateUrl: 'directive.html', replace: false, transclude: false, restrict: 'A', scope: false, compile: function compile(tElement, tAttrs, transclude) { return { pre: function preLink(scope, iElement, iAttrs, controller) { ... }, post: function postLink(scope, iElement, iAttrs, controller) { ... } } }, link: function postLink(scope, iElement, iAttrs) { ... } }; return directiveDefinitionObject; }); 二、Directive指令内容解读 3.terminal 4.template(字符串或者函数)可选参数,可以是: lt;!DOCTYPE htmlgt; lt;html lang="zh" ng-app="myApp"gt; lt;headgt; lt;meta charset="UTF-8"gt; lt;titlegt;AngularJS入门学习lt;/titlegt; lt;script type="text/javascript" src="./1.5.3/angular.min.js"gt;lt;/scriptgt; lt;/headgt; lt;bodygt; lt;hello-worldgt;lt;/hello-worldgt; lt;/bodygt; lt;script type="text/javascript"gt; var app = angular.module('myApp', []); app.directive('helloWorld', function() { return { restrict: 'E', template: 'lt;divgt;lt;h1gt;Hi 我是林炳文~~~lt;/h1gt;lt;/divgt;', replace: true }; }); lt;/scriptgt; lt;/htmlgt; (编辑:泉州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2003 – 如何使用脚本远程重启Windows服务?
- 从TCP/IP协议谈Linux内核参数优化
- 如何在Windows AD域中查找锁定用户帐户的原因
- win7系统电脑蓝屏代码0x000007b修复教程步骤
- windows-server-2008-r2 – 互联网不规则中断:某些图像和J
- windows-server-2012 – 我可以在Server 2012 / R2上禁用WS
- 如何更换Windows XP下的默认记事本程序
- Win11首个预览版来了!新的微软商店、不支持Android App
- windows – Cygwin启动错误/usr/bin/id:找不到组ID的名称
- 妙用只读域控制器提高网络管理的效率