Angular指令
创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为东方企业提供专业的网站设计、网站建设,东方网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
定义一个指令的方法非常简单,只需要调用`directive`方法即可:
var app=angular.module('myapp',[]); app.directive(name,fn)
1. 基础指令
var app=angular.module('myapp',[]); app.run(function($templateCache){ $templateCache.put('cache','模板内容来源于缓存
') }); app.directive('tsHello',function(){ return{ restrict:'EAC', template:'Hello,directive
' } }) app.directive('tsTplfile',function(){ return{ restrict:'EAC', templateUrl:'/static/tpl.html' } }); app.directive('tsTplscript',function(){ return { restrict:'EAC', templateUrl:'tpl', replace:true } }); //templateUrl属性值是添加的缓存名称,加速文件访问 app.directive('tsTplcache',function(){ return{ restrict:'EAC', templateUrl:'cache' } })
2. 重要指令
2.1 transclude
{{text}}
关于transclude更加详细的介绍,参见另外一篇文章
2.2 link
link属性的值是一个函数,在该函数中可以操控DOM元素的对象,包括绑定元素的各类事件,定义事件触发时执行的内容等:
link:function(scope,iEle,iAttrs)
link 函数包括3个主要的参数,其中,scope参数表示指令所在的作用域,它的功能与页面中控制器注入的作用域是相同的,iEle参数表示指令中的元素,该元素可以通过Angular内部封装的jqLite进行调用,jqLite相当于是一个压缩版的jQuery,包含了主要的元素操作API,在语法上与jQuery类似,iAttrs参数表示指令元素的属性集合,通过这个参数可以获取元素中的各类属性。
{{content}}
自定义tsTplscript指令时,在指令返回的对象中添加了link属性,用于绑定和执行DOM元素的各类事件,在属性值执行的函数中,添加scope,iEle,iAttrs三个参数,在指令执行的过程中,由于指令中并没有定义scope属性,因此,scope参数默认就是元素外层父级scope属性,即控制器注入的$scope属性。
此外,iEle参数就是被指令模板替换后的
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对创新互联的支持。