我在另一个对象内部有一个数组对象。所以,在我的html中有两个嵌套的ng-repeat。我试图隐藏标签数据如果行动不是“更改” 为前。在下面的例子中,最后一行“更改的L3”不应该显示。如何根据内部数组值对外部数组记录进行过滤
我的范围数据:
$scope.groups =
[{
"label": "L1",
"tabledata": [{
"FIELDNAME": "C1 Entity",
"SCREEN": "A",
"ORIGINALVALUE": "NA",
"ACTION": "Changed",
"NEWVALUE": "Something",
"TYPEACT": "RB"
},
{
"FIELDNAME": "C2 Entity",
"SCREEN": "A",
"ORIGINALVALUE": "NA",
"ACTION": "Changed",
"NEWVALUE": "SSSS",
"TYPEACT": "RB"
}
]
},
{
"label": "L2",
"tabledata": [{
"FIELDNAME": "B1 Entity",
"SCREEN": "B",
"ORIGINALVALUE": "NA",
"ACTION": "Changed",
"NEWVALUE": "Something",
"TYPEACT": "RB"
},
{
"FIELDNAME": "B2 Entity",
"SCREEN": "B",
"ORIGINALVALUE": "NA",
"ACTION": "Changed",
"NEWVALUE": "Something",
"TYPEACT": "RB"
}
]
},
{
"label": "L3",
"tabledata": [{
"FIELDNAME": "A Entity",
"SCREEN": "C",
"ORIGINALVALUE": "NA",
"ACTION": "Added",
"NEWVALUE": "Something",
"TYPEACT": "RB"
}]
}]
我的HTML在ACTION属性
<div ng-repeat="group in groups" >
<p><b>{{ "Changed " + group.label }}</b>
</p>
<table class="table table-bordered" >
<tbody >
<tr >
<th width ="20%"><b ng-bind="column1" ></b></th>
<th width ="40%"><b>Previous value </b></th>
<th width ="40%"><b ng-bind="column3" ></b> </th>
<th width ="10%"><b>Action </b></th>
</tr>
<!-- BEGIN: Inner ngRepeat. -->
<tr ng-repeat="endorsedata in group.tabledata | filter :{ACTION : 'Changed'} | orderBy:'FIELDNAME' " >
<td ng-init ="showRow = 1">{{ endorsedata.FIELDNAME }}</td>
<td>{{ endorsedata.ORIGINALVALUE }}</td>
<td>{{ endorsedata.NEWVALUE }}</td>
<!-- <td>{{ endorsedata.ACTION }}</td> -->
</tr>
<!-- END: Inner ngRepeat. -->
</tbody>
</table>
</div>
我想隐藏标签,如果有比其他值 '改变'。这如何实现?
编辑: Plunker链接更新。
是的,这并不困难,如果你创建一个过滤器,那么它的内部使用'$ filter'就可以实现这个功能。非常坦率的。看看'$ filter'源代码 –