【发布时间】:2016-07-13 14:12:35
【问题描述】:
我正在使用引导程序显示项目网格,每行有 3 列。为了做到这一点,我使用 ng-repeat 两次,如下所示。
<div class="row" ng-repeat="chunk in projects">
<div class="col-sm-4" ng-repeat="project in chunk | orderBy:'title'">
{{project.title}}
</div>
</div>
我希望能够根据项目的标题字段对项目进行排序。应用过滤器仅对整个列表的子集进行排序,即在块级别而不是项目级别进行排序。
var projects = [[{"title":"Z"},{"title":"A"},{"title":"M"}],
[{"title":"Z"},{"title":"A"},{"title":"M"}]];
orderBy 发生后,行是 A M Z,A M Z。如何让它显示 A A M,M Z Z?
这是上述问题的plunk。 //EDIT : 上面的 plunk 指向解决方案,因为我更新了 plunk。
【问题讨论】:
-
为什么你会期望内部 ng-repeat 上的排序会影响外部?要么在外部排序,要么考虑将您的数据结构扁平化为更类似于您的输出的东西。
-
是的,您需要进一步扁平化结构。
-
据我了解,您建议我将项目修改为 var = [{"title":"A"},{"title:"B"},{"title":"C "},{"title":"A"},{"title:"B"},{"title":"C"}]。这产生了另一个问题。我希望具有类行的外部 div 恰好包含三个具有类 col-sm-4 的内部 div。建议的数据结构无法实现。
标签: angularjs twitter-bootstrap angularjs-filter angularjs-orderby