AngularJS在ngRepeat中选择过滤的项目

时间:2015-07-29 06:04:08

标签: javascript angularjs angularjs-ng-repeat

我想显示一些与数据数组$scope.allSubjects内的主题相关的评论。但是......数据数组将在客户端中被过滤掉,只显示1000个以上的东西。在我的api中,每个主题都有很多评论。我怎样才能获得与数据阵列当前过滤的项目相关的评论?每个主题都有一个ID,我打算使用它来通过getInitialReviews获取与该主题相关的评论,并将其附加到$scope.allSubjects。然后,我将使用嵌套的ngRepeat来显示该主题中的所有评论。我的第一种方法是只使用for循环迭代整个$scope.allSubjects以获取id,这样我就可以从我的API获取审核数据,但我觉得这对于客户如果有1000多个科目。那么......对于我想要做的事情来说,这是一个很好的方法吗?

js lint伪代码: https://jsfiddle.net/zw6zpxou/

1 个答案:

答案 0 :(得分:0)

我认为您假设在视图中仅显示已过滤的主题。 如果是这种情况,你最好使用子控制器,并使用ng-init将过滤后的数据传递给它。

https://jsfiddle.net/mrno1dfr/1/

@PostConstruct
public void init() {
    property = env.getProperty("pty");
}

<div ng-repeat="x in allSubjects | your_filter">

    <div class="col-md-2 subject-card">
        {{ x.name }}
        <!-- reviews go here with their own loop?  -->
        <div ng-controller="reviewsCtrl" ng-init="loadReviews(x.subject_id)">
            reviews count : {{len(reviews)}}
            <div ng-repeat="review in reviews">
                {{review.someData}}
            </div>
        </div>
    </div>

虽然我不确定确切的结果数据结构。