ng-option过滤器不工作angularjs

时间:2015-10-09 12:03:53

标签: javascript angularjs ng-options

我正在尝试使用ng-options在一个数组中显示数据,我希望过滤它不起作用。我不想显示有billHeadShortForm = FEC&的对象。 FDG

这是我的HTML

<select class="form-control" ng-init="getBillHeadCurrentProjWise()" ng-model="headID" ng-options="h.billHeadID as h.billHead for h in billHeadsProjWise | filter:h.billHeadShortForm!='FEC' | h.billHeadShortForm!='FDG'">
     <option value="">--Select Billing Head--</option>
</select>

2 个答案:

答案 0 :(得分:1)

我找到了解决方案

  $scope.myFunction = function (Billhead) {
    if (Billhead.billHeadShortForm == 'FEC' || Billhead.billHeadShortForm == 'FDG' || Billhead.billHeadShortForm == 'GL') {
        return false;
    } else {
        return true;
    }
}


  ng-options="h.billHeadID as h.billHead for h in billHeadsProjWise | filter:myFunction"

答案 1 :(得分:0)

ng-options的过滤器部分调整为以下内容:

ng-options="... | filter: {billHeadShortForm: '!FEC'} | filter: {billHeadShortForm: '!FDG'}"

参见 fiddle

虽然,您可能需要阅读filter documentation,并编写一个函数以避免使用两个过滤器。

修改

该功能可能是这样的:

$scope.filterBillHead = function (billHead) {
    // Exclude 'FEC' and 'FDG'
    // return true if billHeadShortForm is not in the array, false otherwise
    return ['FEC', 'FDG'].indexOf(billHead.billHeadShortForm) < 0;
}

模板:

ng-options="... | filter: filterBillHead"

参见 updated fiddle