《用AngularJS开发下一代Web应用》指令学习笔记

一.指令的作用:实现语义化标签

我们常用的HTML标签是这样的:

Html代码   收藏代码
  1. <div>  
  2.     <span>目录</span>  
  3. </div>  

而使用AngularJS的directive(指令)机制,我们可以实现这样的东西

Html代码   收藏代码
  1. <tabset>  
  2.     <tab title='Home'>  
  3.         <p>Welcome home!</p>  
  4.     </tab>  
  5.     <tab title='Preferences'>  
  6.          <p>Content</p>  
  7.     </tab>  
  8. <tabset>  

和JSP或者Struts等等框架里面的taglib功能一样,只不过这里是使用JavaScript来实现的。

 

二.实例1

DirectiveStudy01.html

Html代码   收藏代码
  1. <html ng-app='app'>  
  2.     <body>  
  3.         <hello></hello>  
  4.     </body>  
  5.     <script src="lib/angular/angular.js"></script>  
  6.     <script src="directive/HelloDirect.js"></script>  
  7. </html>  

HelloDirect.js

Js代码   收藏代码
  1. var appModule = angular.module('app', []);  
  2. appModule.directive('hello'function() {  
  3.     return {  
  4.         restrict: 'E',  
  5.         template: '<div>Hi there</div>',  
  6.         replace: true  
  7.     };  
  8. });  

运行结果:


        对于DirectiveStudy01.html里面的<hello>标签,浏览器显然是不认识的,它唯一能做的事情就是无视这个标签。那么,为了让浏览器能够认识这个标签,我们需要使用Angular来定义一个hello指令(本质上说就是自己来把<hello>替换成浏览器能识别的那些标准HTML标签)。

        从运行结果可以看到,<hello>已经被<div>Hi there</div>这个标签替换掉了,这也是以上JS代码里面replace:true这行配置的作用,代码里面的template配置项当然就是我们要的div标签啦,至于restrict:'E'这个配置项的含义,请看下表:



三.实例2

        如果需要替换的HTML标签很长,显然不能用拼接字符串的方式来写,这时候我们可以用templateUrl来替代template,从而可以把模板写到一个独立的HTML文件中。

 

四.实例3

 

五.实例4

 

六.实例5

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值