ngRepeat和基于集合值的过滤列表

时间:2016-01-20 13:51:00

标签: angularjs angularjs-ng-repeat filtering ng-repeat

以下是我通过ng-repeat运行的数据示例。是否可以通过ngRepeat运行它,但只能在HTML中的lineNum >= 1lineNum <= 10处运行?我可以通过创建单独的变量和使用像linq.js这样的另一个插件来做到这一点但是希望避免这种情况。

{
    "00100":{ lineNum: 1.00, Columns: {..} }
    "00200":{ lineNum: 2.00, Columns: {..} }
    "02000":{ lineNum: 20.00, Columns: {..} }
    "20000":{ lineNum: 200.00, Columns: {..} }
}

2 个答案:

答案 0 :(得分:2)

是的,只需在ng-if元素上使用ngRepeat即可。我还假设您的数据存在语法错误,并假设它看起来像:

$scope.myData = {
    "00100":{ lineNum: 1.00, Columns: {..} }
    "00200":{ lineNum: 2.00, Columns: {..} }
    "02000":{ lineNum: 20.00, Columns: {..} }
    "20000":{ lineNum: 200.00, Columns: {..} }
}

和HTML

<div ng-repeat="(key, value) in myData" ng-if="value.lineNum > 1 && value.lineNum < 10">
    {{key}}
</div>

答案 1 :(得分:1)

不确定,您的数据类型是什么,但有一个数据列表,如:

var records = {
    lineNum: 1.00, Columns: {..},
    lineNum: 2.00, Columns: {..},
    lineNum: 20.00, Columns: {..},
    lineNum: 200.00, Columns: {..},
};

您可以这样写:

<div ng-repeat="record in records" ng-if="record.lineNum >= 1 && record.lineNum <= 10">{{record.lineNum}}
</div>

这是一种解决方法,因为您想要在HTML中进行。