0

我有一个<layout>包含许多<pane>元素的指令。

是否可以创建窗格指令,使其指令仅在<layout>元素中找到时才适用?

该文档指出:

require - 要求将另一个控制器传递到当前指令链接函数中。require 需要传入指令控制器的名称。如果找不到这样的控制器,则会引发错误。

使用require: '^layout',当在<pane>元素之外找到<layout>元素时,确实会引发错误,但 dom 元素仍会被转换。可以定义指令以将其行为限制在<layout>元素的范围内吗?

如果我需要另一个在<grid>元素内包含不同指令的窗格指令怎么办?

4

1 回答 1

1

这是一种方法(也许不是最好的方法):在你的指令上定义一个控制器,然后在你的指令中layout选择require它。在您的链接函数中,检查 layoutCtrl 是否已定义:^?layout

require: '^?layout',
link: function(scope, element, attrs, layoutCtrl) {
   if(!layoutCtrl) return;  // do nothing if no layout

小提琴

于 2013-04-09T15:55:05.317 回答