2014-04-29 31 views
0
<div ng-repeat="blub in filtered = (blubs | filter:tag)"> 
    <span ng-repeat="tag in blub.tags" class="tag-box">{{tag}}</span> 
</div> 

如何将其解锁为一个查询。我想像是这样的:angularjs unnest ng-repeatats into one query

<span ng-repeat="tag in blub.tags in filtered = (blubs | filter: tag)>{{tag}}</span> 

对象blub有多​​个标签,有不止一个blub对象。

编辑: Plunker: http://plnkr.co/edit/mWjyryOsV5zZJisZzV3D 目标:降低2次NG-重复到一个NG-重复其示出了相同的标记。

+0

请尝试多解释一下这个问题,plunkrs/demos总是有用 – Blowsie

回答

0

在这种情况下,我会建议你先创建一个集合,而不是双循环。

<span ng-repeat="tag in getBlupList(filtered)" class="tag-box">{{tag}}</span> 

其中getBlupList(过滤)是JS方法。某种减速器可以创建一个列表而不是您拥有的列表。 我不知道你的集合是怎么样的,但对我个人而言,这种情况下最好的解决方案是使用Underscore.js库。 “.flatten()”或者“ .pluck()”

+0

好吧,没有选项可以在没有脚本的情况下执行它吗?因为这使得角度的所有漂亮的过滤器功能不再有用,如果我反正必须在获取列表之前在.js文件中进行过滤。 –

+0

我不知道没有脚本的方法。而且你还可以使用过滤器。从服务器获取数据后,您可以创建一个数组或集合,并将此变量添加到ng-repeat中。很难判断,因为我不知道你的收藏是怎样的。 – Lugaru