首页 > 代码库 > 理解指令的restrict属性
理解指令的restrict属性
restrcit属性说明
restrict: EACM中的任意一个之母。它是用来限制指令的声明格式的。
E - 元素名称:<my-directive></my-directive> A - 属性: <div my-directive="exp"> </div> C - 类名:<div class="my-directive: exp;"></div> M - 注释: <!-- directive: my-directive exp -->
它做了什么
示例
<html ng-app=‘app‘> <body> <hello> </hello> <div hello> </div> <div class="hello"> </div> <!-- directive: hello --> </body> <script src=http://www.mamicode.com/"bower_components/angular/angular.js"></script>>运行结果
<h3>Hi there</h3> <h3 hello>Hi there</h3> <h3 class="hello">Hi there</h3> <h3>Hi there</h3>可以看到几种方式,做的事情一样,只有部分地方不同. 这些区别有什么作用?
有何作用
restrict=E时,浏览器无法识别指令的声明元素,则这个指令一定是起替换作用,也就是说template一定有值.
restrict=A时,它是以元素属性存在的,那么这个指令的作用可以不是替换. 那么它可以做什么?以link方式操作dom.
比如在初始时为元素聚焦
<input type="input" focus/> appModule.directive(‘focus‘, function() { return { restrict: ‘A‘, link:function(scope, elem, attrs){ $(elem).focus(); } }; });restrict=C,则是在绑定指令的同时,指定它的css样式,让指令与样式同步.
restrict=M,则在一些场合非常有用,方便在注释与代码之间切换.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。