基于字段值的角度过滤

时间:2015-08-19 11:55:23

标签: javascript angularjs filter

我有表格,我正在执行ng-repeat并从服务器获取数据

<tr ng-repeat="assetsdetail in detailAssets | filter: {IND_RECORD_TYPE : !RUNNING}:true">
        <td>{{assetsdetail.MASTER_ASSET_TYPE}}</td>
        <td>{{assetsdetail.MINOR_ASSET_TYPE}}</td>
        <td>{{assetsdetail.DETAIL_ASSET_TYPE}}</td>
        <td>{{assetsdetail.PRODUCT_DESC}}</td>
        <td>{{assetsdetail.VENDOR_NAME}}</td>
        <td>{{assetsdetail.IND_RECORD_TYPE}}</td>
      </tr>

我想在这里实现的是我希望所有数据除了拥有的数据之外 运行的IND_RECORD_TYPE。我到目前为止未能实现这一点,是他们在视野中做到这一点的简单方法吗?

2 个答案:

答案 0 :(得分:1)

嗯,你不需要过滤器。一个简单的 ng-show 可以做到如下:

foreach( TrainingDetails trainingDetails in selectedTrainingDay.trainingDetails) {
   // Do stuff with the trainingDetails

}

但是,如果你坚持使用过滤器,你可以这样做:

<tr ng-repeat="assetsdetail in detailAssets" ng-hide="assetsdetail.IND_RECORD_TYPE == 'RUNNING'">
    <td>{{assetsdetail.MASTER_ASSET_TYPE}}</td>
    <td>{{assetsdetail.MINOR_ASSET_TYPE}}</td>
    <td>{{assetsdetail.DETAIL_ASSET_TYPE}}</td>
    <td>{{assetsdetail.PRODUCT_DESC}}</td>
    <td>{{assetsdetail.VENDOR_NAME}}</td>
    <td>{{assetsdetail.IND_RECORD_TYPE}}</td>
</tr>

控制器中,声明一个函数'filterItem',如下所示:

<tr ng-repeat="assetsdetail in detailAssets | filter: filterItem">
    <td>{{assetsdetail.MASTER_ASSET_TYPE}}</td>
    <td>{{assetsdetail.MINOR_ASSET_TYPE}}</td>
    <td>{{assetsdetail.DETAIL_ASSET_TYPE}}</td>
    <td>{{assetsdetail.PRODUCT_DESC}}</td>
    <td>{{assetsdetail.VENDOR_NAME}}</td>
    <td>{{assetsdetail.IND_RECORD_TYPE}}</td>
</tr>

这个函数的作用是它需要数组的每个'item',如果要显示它,则返回true;如果要隐藏它,则返回false。您案例中的'项''assetsdetail'

答案 1 :(得分:1)

更改

filter: {IND_RECORD_TYPE : !RUNNING}

filter: {IND_RECORD_TYPE : '!RUNNING'}