2014-11-25 72 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"], 
    ... 
} 

而且基於一種或另一種的存在或不存在處理您不同的邏輯在你的電池的鏈接功能。這對我來說有點骯髒,但可以爲你需要的東西工作。

相關問題