使用外部ng-repeat的object属性过滤嵌套的ng-repeat

时间:2014-06-15 21:35:14

标签: javascript angularjs mean-stack

我尝试用两个json进行两次嵌套的ng-repeats,其中第二次ng-repeat由第一次ng-repeat的参数过滤。

首先,json $ scope.matches包含世界杯每场比赛的信息。 第二个json @ scope.predictions包含每个游戏的每个用户预测。

现在我想重复一个匹配作为标题,然后列出该特定游戏的所有预测。重复,直到在正确的游戏下列出每个预测。我有match.matchnumber = prediction.matchnumber。

在我的Plunker http://plnkr.co/edit/GQmYxZiO53nkIBVczaS9?p=preview中,您可以看到过滤器无法正常工作,因为它适用于每个对象参数,而不仅仅是matchnumber。

使这项工作最简单的方法是什么? 也许我应该将jsons组合成一个过滤后的数组?如何以智能方式完成这项工作

1 个答案:

答案 0 :(得分:1)

为了按特定属性进行过滤,您需要传递一个对象,其中property-name为key,search-term为value:

ng-repeat="p in predictions | filter:{matchnumber: match.matchnumber}"

<子> 上述过滤器仅返回matchnumber属性与match.matchnumber匹配的预测。


另请参阅此 updated demo


<子> 也就是说,在每个摘要循环中循环遍历每个匹配的所有预测可能效率不高。更好的方法是处理两个JSON并构建包含所有必要数据的第三个JSON,这样在视图中不需要过滤。