angularjs 过滤一个 table

angularjs filter a table

<tbody>
        <tr ng-repeat="y in Summary">
            <td>{{y.ID}}</td>                       
            <td>{{y.submitTime}}</td>
            <td>{{y.timeTaken}}</td>
            <td>{{y.description}}</td>
        </tr>
</tbody>

我想在用户选择复选框时过滤值 - 排除非会员。

所以非成员数组有用户的ID。

$scope.Nonmember=["521","234","456", etc]

因此,当用户选中复选框时,我想删除 ID 为 nonmember 的行。过滤器可以用于搜索整个数组吗?.. 或者可以用ng-show/hide/if??

过滤器可以做到。

例如:

angular
    .module( ... )
    .filter( 'excludeNonMembers', function(){
        return filterMembers;
    } );

function filterMembers( summary, nm, exclude ){
    if(!exclude) return summary;
    if( !nm || nm.length == 0 ) return summary;
    return summary.filter( function( i ){
        return nm.indexOf( i.ID ) == -1;
    } );
}

在你的html中:

 <tr ng-repeat="y in summary | filter:excludeNonMembers:Nonmember:exclude"> 

$scope.exclude 变量是一个布尔值,您可以在某处切换以应用过滤器。