AngularJS--自定义指令.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AngularJS--自定义指令.docx

/kavlez/p/4288885.htmlAngularJS - 自定义指令这一篇从自定义指令出发,记录了定义一个指令时影响指令行为的各种因素。试着感受这些因素,让自己更高效地编写AngularJS应用。?Directive先从定义一个简单的指令开始。 定义一个指令本质上是在HTML中通过元素、属性、类或注释来添加功能。AngularJS的内置指令都是以ng开头,如果想自定义指令,建议自定义一个前缀代表自己的命名空间。这里我们先使用my作为前缀:var myApp = angular.module(myApp, []) .directive(myDirective, function() { return { restrict: A, replace: true, template: pKavlez/p };})如此一来,我们可以这样使用,注意命名是camel-case:my-directive /!-- my-directivepKavlez/p/my-directive --directive()接受两个参数name:字符串,指令的名字factory_function:函数,指令的行为应用启动时,以name作为该应用的标识注册factory_function返回的对象。在factory_function中,我们可以设置一些选项来改变指令的行为。?下面记录一下定义指令时用到的选项?restrict (string)该属性用于定义指令以什么形式被使用,这是一个可选参数,本文开头定义的指令用的也是A,其实该选项默认为A。?也就是元素(E)、属性(A)、类(C)、注释(M)(ps:EMAC? EMACS? 挺好记哈)比如上面定义的myDirective,可以以任何形式调用。E(元素)my-directive/my-directiveA(属性,默认值)div my-directive=expression/divC(类名)div class=my-directive:expression;/divM(注释)--directive:my-directive expression--?priority (Number)也就是优先级,默认为0。在同一元素上声明了多个指令时,根据优先级决定哪个先被调用。?如果priority相同,则按声明顺序调用。另外,no-repeat是所有内置指令中优先级最高的。?terminal (Boolean)终端? 而且还是Boolean??被名字吓到了,其实terminal的意思是是否停止当前元素上比该指令优先级低的指令。 但是相同的优先级还是会执行。比如,我们在my-directive的基础上再加一个指令:.directive(momDirective,function($rootScope){ return{ priority:3, terminal:true };})调用发现my-directive不会生效:div mom-directive my-directive=content /div?template (String/Function)至少得输出点什么吧? 但template也是可选的。String类型时,template可以是一段HTML。Function类型时,template是一个接受两个参数的函数,分别为:tElementtAttrs函数返回一段字符串作为模板。?templateUrl (String/Function)这个就和上面的template很像了,只不过这次是通过URL请求一个模板。 String类型时,templateURL自然是一个URL。 Function类型时返回一段字符串作为模板URL。?replace (Boolean/String)默认值为false,以文章开头定义的指令为例,假设我们这样调用了指令my-directive/my-directive replace为true时,输出:pKavlez/preplace为false时,输出:my-directivepKavlez/p/my-directive ?transclude (Boolean)该选项默认为false,翻译过来叫嵌入,感觉还是有些生涩。template和scope已经可以做很多事情了,但有一点不足。比如在原有元素的基础上添加内容,transclude的例子如下:body ng-app=myApp textarea ng-model=content/textarea div my-directive title=Kavlez hr {{content}} /div/bodyscript type=text/javascriptvar myApp = angular.module(myApp, [

文档评论(0)

changjiali2019 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档