require参数可以被设置为字符串或数组,字符串代表另外一个指令的名字。require会将控制器注入到其值所指定的指令中,并作为当前指令的链接函数的第四个参数。
字符串或数组元素的值是会在当前指令的作用域中使用的指令名称。指令得require参数的值可以用下面的前缀进行修饰,这会改变查找控制器时的行为:

?     在当前指令中没有找到所需要的控制器,会将null作为传给link函数的第四个参数。

^     指令会在上游的指令链中查找require参数所指定的控制器。

?^    将前面两个选项的行为组合起来,选择地加载需要的指令并在父指令链中进行查找。

没有前缀   指令将会在自身所提供的控制器中进行查找,如果没有找到任何控制器(或具有指定名字的指令)就抛出一个错误。

  例子:

angular.module('myApp',[])  //定义第一个指令 bookList  .directive('bookList',function(){  return {  restrict:'ECAM',  controller:function($scope){  $scope.books=[  {name:'php'},{name:'javascript'},{name:'java'}  ];  this.addBook=function(){  $scope.$apply(function(){  $scope.books.push({name:'Angularjs'});  });  }  },  controllerAs:'bookListController',  //这个template中使用了第二个指令bookAdd  template:'<div><ul><li ng-repeat="book in books">{{ book.name }}</li></ul> <book-add></book-add> </div>',  replace:true  }  })  //定义第二个指令 bookAdd  .directive('bookAdd',function(){  return{  restrict:'ECAM',   require:'^bookList',  //这是个指令名template:'<button type="button">添加</button>',  replace:true,  link:function(scope,iElement,iAttrs,bookListController){  //这里引用了bookList指令的控制器  iElement.on('click',bookListController.addBook);  }  }  })  .controller('firstController',['$scope',function($scope){  }])  

转载于:https://www.cnblogs.com/shawnhu/p/8540808.html

AngularJS 指令中的require相关推荐

  1. 如何调用AngularJS指令中定义的方法?

    本文翻译自:How to call a method defined in an AngularJS directive? I have a directive, here is the code : ...

  2. 【转】angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下 通常大家在使用 ...

  3. angularjs指令中的compile与link函数详解

    通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. angularjs里的指令非常神奇,允许你 ...

  4. $httpprovider指令中拦截器interceptors的使用介绍

    2019独角兽企业重金招聘Python工程师标准>>> $http服务允许我们使用http请求和后台做通信,但是在每一次放松请求之前我们都希望能够捕捉这个请求并且进行操作,比如之前富 ...

  5. angularJS在创建指令需要注意的问题(指令中使用ngRepeat)

    现在发现,当初的自己真的是太菜了,为什么你在指令中更改数据,没有作用呢?这其实是原型链的问题. 详细的我就不在这里说了,有位大神早已发布了这个内容,在这里复制个地址给大家,有兴趣的可以看看 http: ...

  6. Angularjs进阶笔记(2)—自定义指令中的数据绑定

    [摘要]有关自定义指令的scope参数,网上很多文章都在讲这3种绑定方式实现的效果是什么,但几乎没有人讲到底怎么使用,本篇希望聊聊到底怎么用这个话题. 一. 自定义指令 自定义指令,是Angularj ...

  7. AngularJS指令范围中的#39;@#39;和#39;=#39;有什么区别?

    本文翻译自:What is the difference between '@' and '=' in directive scope in AngularJS? I've read the Angu ...

  8. AngularJS 指令实践

    2019独角兽企业重金招聘Python工程师标准>>> 指令(Directives)是所有AngularJS应用最重要的部分.尽管AngularJS已经提供了非常丰富的指令,但还是经 ...

  9. AngularJS 指令实践指南(二)

    这个系列教程的第一部分给出了AngularJS指令的基本概述,在文章的最后我们介绍了如何隔离一个指令的scope.第二部分将承接上一篇继续介绍.首先,我们会看到在使用隔离scope的情况下,如何从指令 ...

最新文章

  1. tomcat与iis公用80端口(已经发布.net项目现在开发Java项目时tomcat在eclipse中localhost:8080打不开问题)...
  2. android128 zhihuibeijing 科大讯飞 语音识别
  3. FPGA中系统运行频率计算方法
  4. Centos8 yum 阿里源配置
  5. 三级数据库还是linux好,08年计算机三级数据库辅导:如何修改Linux下MySQL5.0的默认连接数...
  6. POI批量导入及一键上传ocupload和pinyin4j组件的使用案例
  7. linux C++ 多进程初步02
  8. React之createRef
  9. 10桌面管理文件收纳_二十余件精选桌面好物推荐,让学习工作生活满满正能量!...
  10. 新技术刚测试就被全行业禁用,谷歌“杀死”Cookies真能重写规则吗?
  11. ID3/C4.5/Gini Index
  12. pcl对点云进行直通滤波
  13. 插件占坑,四大组件动态注册前奏(一) 系统Activity的启动流程
  14. vant toast 指定挂载到指定位置_文档如何只允许编辑指定位置?2步限制编辑,保护文档不被修改...
  15. 使用nohup让程序在远程主机后台运行
  16. Lenovo 320-15IKB DG421 DG521 DG721 NM-B241 REV1.0笔记本点位图
  17. 计算机编辑作业之目录制作,大学计算机ppt作业
  18. linux xps文件,Master PDF:PDF和XPS文件编辑神器
  19. element-ui使用踩坑记录 2022/8/24
  20. 守望者的逃离 动态规划+滚动数组

热门文章

  1. 网络推广外包专员浅析为何网站网络推广外包中有排名却没有转化率
  2. H标签对网站SEO优化是不可或缺的!
  3. vnc用户名 查看linux_linux 查看vnc服务器
  4. react实战项目_前端学习路线图--从网页设计到项目开发
  5. python opencv 边缘检测_opencv-python-学习笔记十四(Canny边缘检测)
  6. 服务器如何开启远程控制,远程控制命令设置方法介绍
  7. mysql使用大内存页面,设置MySQL使用大内存页面
  8. vim实用技巧-笔记(第九章)
  9. android VectorDrawable使用笔记(五)
  10. dns tunnel工具地址