我知道这类问题已经得到了解答。但是有些东西我被困住了。
我的 JSON 数据如下所示:
[{
"batch_queue_name": "Batch One",
"start_date": "12/01/2016 10:18 P.M.",
"end_date": "12/03/2016 01:08 A.M.",
"completion_status": "100"
}, {
"batch_queue_name": "Batch Two",
"start_date": "12/10/2016 12:18 A.M.",
"end_date": "12/11/2016 05:23 P.M.",
"completion_status": "100"
}, {
"batch_queue_name": "Batch Three",
"start_date": "04/01/2017 12:18 A.M.",
"end_date": "06/01/2017 03:21 P.M.",
"completion_status": "60"
}, {
"batch_queue_name": "Batch Four",
"start_date": "05/01/2017 01:25 A.M.",
"end_date": "06/01/2017 12:30 A.M.",
"completion_status": "97"
}, {
"batch_queue_name": "Batch Five",
"start_date": "05/01/2017 12:18 A.M.",
"end_date": "08/01/2017 03:37 A.M.",
"completion_status": "42"
}, {
"batch_queue_name": "Batch Six",
"start_date": "16/10/2016 12:18 A.M.",
"end_date": "18/10/2016 05:23 P.M.",
"completion_status": "100"
}]
现在,在我的ng-repeat
中,我正在尝试过滤那些完成状态不是 100 的:
<tr ng-repeat="batch in vm.batches | filter: {batch.completion_status:'!'+'100'}">
<td> ... </td>
</tr>
但这会引发一个错误:
语法错误:标记"."是意外的,期望 [:] 位于第 28 列 表达式 [VM.批处理 |NaNilter: {batch.completion_status != '100%'}] 从 [.completion_status != '100%'}] 开始。
我做错了什么?
你不必写batch.completion_status
.你可以这样做:
ng-repeat="batch in batches | filter: {completion_status: '!100'}"
JSFiddle 上的演示
batch.completion_status
。只需输入:
<tr ng-repeat="batch in vm.batches | filter : {completion_status:'!'+'100'}">
</tr>
你也可以试试这种控制器逻辑:
$scope.filterRange = function(obj) {
return obj.completion_status != 100;
};