我有一个简单的ng-repeat抛出数据,它显示的字段之一是NumberOfStamps:
<tr ng-repeat-start="list in Data.Items "> <td><a href=" {[{list.Title}]} {[{list.ForeName}]} {[{list.SurName}]}</a></td> <td>(Date of Birth {[{list.Dob}]})</td> <td>{[{list.NumberOfStamps}]} stamps</td> </tr>
输出示例:
Mr Adam Happy Date of Birth 01/6/1984 16 stamps Mr Adam Sad Date of Birth 24/11/1975 0 stamps Mr Adam Green Date of Birth 02/1/1963 1 stamps Mr Adam Red Date of Birth 21/1/1951 12 stamps Mr Adam Blue Date of Birth 28/10/1998 0 stamps Mr Adam Brown Date of Birth 25/9/2010 0 stamps Mr Adam Black Date of Birth 24/8/1954 21 stamps Mr Adam Violet Date of Birth 17/5/1942 54 stamps
我如何修改此ng-repeat以仅显示NumberOfStams> 0的记录?我试过了:
<tr ng-repeat-start="list in Data.Items | filter:{NumberOfStamps > 0}"> <td><a href=" {[{list.Title}]} {[{list.ForeName}]} {[{list.SurName}]}</a></td> <td>(Date of Birth {[{list.Dob}]})</td> <td>{[{list.NumberOfStamps}]} stamps</td> </tr>
预期产量:
Mr Adam Happy Date of Birth 01/6/1984 16 stamps Mr Adam Green Date of Birth 02/1/1963 1 stamps Mr Adam Red Date of Birth 21/1/1951 12 stamps Mr Adam Black Date of Birth 24/8/1954 21 stamps Mr Adam Violet Date of Birth 17/5/1942 54 stamps
在相关范围内创建谓词函数:
$scope.greaterThan = function(prop, val){ return function(item){ return item[prop] > val; } }
作为第一个参数,它在对象上采用属性名称。第二个参数是整数值。
像这样在您的视图中使用它:
<tr ng-repeat-start="list in Data.Items | filter: greaterThan('NumberOfStamps', 0)">
演示版