我有一个<layout>
指令,它包含许多<pane>
元素。
是否可以创建窗格指令,使其指令仅在<layout>
元素中找到时适用?
文档说明:
require - 要求将另一个控制器传递给当前指令 连接功能。 require需要指令控制器的名称 传入。如果找不到这样的控制器则会引发错误。
使用require: '^layout'
,当在<pane>
元素之外找到<layout>
元素时,会抛出错误,但dom元素仍会被转换。是否可以定义指令以将其行为限制在<layout>
元素的范围内?
如果我需要在<grid>
元素中包含不同指令的另一个窗格指令,该怎么办?
答案 0 :(得分:1)
这是一种方法(可能不是最佳方式):在layout
指令上定义一个控制器,然后在require
中选择^?
layout
指令。在链接函数中,检查是否定义了layoutCtrl:
require: '^?layout',
link: function(scope, element, attrs, layoutCtrl) {
if(!layoutCtrl) return; // do nothing if no layout