2014-11-25 35 views
4

我正在写在Angular.js网格系统,看起来像如下:要求父指令的控制器,当父母的指令是不知道

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

    .... 

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

我需要达到细胞内部行的控制器,但正如你所看到的,存在多种行的,所以我不能写这个小区指令内:

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

您能否提供某种形式的解决方案,能够引用到一般家长指令的控制器?

+0

你可以在jsfiddle中复制你的代码吗?您可以从controllerAs属性中受益,但这取决于您的体系结构。 – Lukmo 2014-11-26 14:17:15

+0

检出问题[在需要Angularjs中使用多个指令](http://stackoverflow.com/questions/25506827/using-multiple-directives-in-require-with-angularjs)。 – shawnzhu 2014-11-26 15:44:23

回答

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"], 
    ... 
} 

而且基于一种或另一种的存在或不存在处理您不同的逻辑在你的电池的链接功能。这对我来说有点肮脏,但可以为你需要的东西工作。

相关问题