如何根据Angularjs中的特定属性显示对象列表?

时间:2017-01-18 18:18:34

标签: javascript angularjs mongodb angularjs-filter

我在mongodb中有一对多的相关集合模型,其中子集合中的doc包含父集合中doc的id。我正在尝试在查看父母时显示所有孩子。

查看父级时,我有一个ng-repeat显示整个子集合。我正在努力过滤子集合,以便它只显示包含父ID的结果。

这是我的HTML:

<div>{{parent.name}}</div>
<div ng-repeat="child in children | filter: {id: {{parent.id}}}">
    {{child.name}}
</div>

这是我的js:

app.controller("parentCtrl", function($scope, $location, $routeParams, $http) {  
    //Get parent 
    $scope.children = [];
    $http.get('/children').success(function(children) {
        $scope.loaded = true;
        $scope.children = children;
    });
});

代码成功获取父代并加载子集合中的所有文档。我可以在ng-repeat中使用过滤器来拉动孩子吗?如果没有,是否有最佳做法从相关集合中获取文档?

2 个答案:

答案 0 :(得分:1)

parent.id不应该使用插值({{}})进行换行,因为它需要一个针对范围进行求值的表达式。

ng-repeat="child in children | filter: {id: parent.id }"

答案 1 :(得分:0)

您可以使用此代码:

<div>{{parent.name}}</div>
<div ng-repeat="(k, child) in children | filter: {id: parent.id}"
    {{child.name}}
</div>