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