1

我想瓦片獲得在ng-repeat元素(設立css根據過濾列表上)AngularJS - 在子指令Transclude和訪問NG重複過濾列表,

理想情況下,我想使用HTML標記是這樣的:

<ul> 
    <li ng-repeat="row in rows"> 
    <h6>{{row.name}}</h6> 
    <ul> 
     <li ng-repeat="item in items|filter:row" tile>{{ item.name }}</li> 
    </ul> 
    </li> 
</ul> 
  1. 是否有可能對我來說,訪問被傳遞給ng-repeat名單? (任何其他方式比AngularJS - how to get an ngRepeat filtered result reference
  2. 我可以採用某種transclude的項目,所以tile指令將實際應用的CSS(我想抽象ng-style="{top:getTop(item),left:getLeft(item)}"等)

回答

2

是否有可能對我來說,訪問正在傳遞給ng-repeat的列表? (比AngularJS任何其他方式 - 如何獲得ngRepeat過濾結果引用)

我認爲你需要做在你所引用的鏈接看到了什麼:

ng-repeat="item in (filteredItems = (items|filter:row))" tile> 

假設你tile指令不會創建新範圍,它將共享ng-repeat創建的範圍(每個項目一個範圍)。所以filteredItems屬性將可用於您的指令。

我可以以某種方式跨越項目,所以tile指令實際上會應用CSS(我想抽象ng-style =「{top:getTop(item),left:getLeft(item)}」等)

您的tile指令可以訪問定義它的li元素。所以你可以直接打電話,例如element.addClass(...)

+0

是否可以將過濾的列表傳遞給隔離範圍?比如:

  • ...
'? (將篩選移至父元素)? – g00fy 2013-04-10 20:09:47

+0

嘗試在ng-repeat中使用隔離範圍時會遇到麻煩。請參見[FAQ頁面](http://docs.angularjs.org/misc/faq)上的「將ng-repeat與其他指令相結合」一節。 – 2013-04-10 20:17:47