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

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

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

  ....

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

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

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

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

最佳答案 所以,有两种选择.

1)有一个单行元素指令,然后用行类型属性指令进行修饰.然后,您需要将行放入单元格和行类型装饰器中.

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

  ....

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

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

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

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

点赞