require在angularjs中的作用

require在angularjs中的作用,angularjs,Angularjs,我在定制指令中看到了这一要求 require: '^create' 我不明白。你能用angularjs向我解释一下require吗?require require接受要传入的指令的字符串名称(或字符串数组) 如果使用数组,则注入的参数将是按相应顺序排列的数组 如果找不到此类指令,或者该指令没有控制器,则会引发错误(除非未指定任何链接函数,在这种情况下会跳过错误检查) 名称的前缀可以是: (无前缀)-在当前元素上找到所需的控制器。如果找不到,则抛出错误 ?-尝试找到所需的控制器,如果找不到,

我在定制指令中看到了这一要求

require: '^create'
我不明白。你能用angularjs向我解释一下require吗?

require

  • require接受要传入的指令的字符串名称(或字符串数组)
  • 如果使用数组,则注入的参数将是按相应顺序排列的数组
  • 如果找不到此类指令,或者该指令没有控制器,则会引发错误(除非未指定任何链接函数,在这种情况下会跳过错误检查)

  • 名称的前缀可以是:

(无前缀)-在当前元素上找到所需的控制器。如果找不到,则抛出错误

?-尝试找到所需的控制器,如果找不到,则将null传递给链接fn

^-通过搜索元素及其父元素,找到所需的控制器。如果找不到,则抛出错误

^^-通过搜索元素的父元素来定位所需的控制器。如果找不到,则抛出错误

?^-尝试通过搜索元素及其父元素来定位所需的控制器,如果未找到,则将null传递给链接fn

?^^-尝试通过搜索元素的父元素来定位所需的控制器,如果未找到,则将null传递给链接fn

需要控制器

如果要共享同一控制器实例,请使用
require

require
确保存在另一个指令,然后将其控制器作为参数包含到链接功能中。因此,如果您在一个元素上有两个指令,那么您的指令可以要求另一个指令的存在,并获得对其控制器方法的访问权。这方面的一个常见用例是需要
ngModel

^require
,在添加插入符号后,除了当前元素外,还会检查指令上方的元素,以尝试查找其他指令。这允许您创建复杂的组件,其中“子组件”可以通过其控制器与父组件通信,效果非常好。示例包括选项卡,其中每个窗格可以与整个选项卡通信以处理切换;手风琴套件可以确保一次只能打开一个;等等

在任何一种情况下,您都必须同时使用这两个指令才能使其工作<代码>要求是组件之间通信的一种方式


查看指令指南页了解更多信息

请阅读文档请参考