当父指令未知时,需要父指令的控制器

时间:2014-11-25 09:30:03

标签: angularjs angularjs-directive

我正在Angular.js中编写一个网格系统,如下所示:

<grid>
  <data-row>
    <cell>
    </cell>
  </data-row>

  ....

  <group-row>
    <cell>
    </cell>
  </group-row>
</grid>

我需要到达单元格内的行控制器,但正如您所看到的,有多种行,所以我不能在单元格指令中写入:

return {
  ...
  require: '^row'
}

您能否建议某种解决方案能够引用一般父指令的控制器?

1 个答案:

答案 0 :(得分:2)

所以,有两个选择。

1)有一个row元素指令,然后用row-type属性指令装饰。然后,您将require行放入您的单元格和行式装饰器中。

<grid>
  <row row-type="data">
    <cell>
    </cell>
  </row>

  ....

  <row row-type="group">
    <cell>
    </cell>
  </row>
</grid>

2)让你的细胞指令需要多个可选父母 -

return {
   ...
   require: ["?data-row", "?group-row"],
   ...
}

根据一个或另一个的存在或不存在,处理单元格链接功能中的不同逻辑。这对我来说有点脏,但可以满足你的需要。