angularJS过滤器使用数组类型(?)ng-model

时间:2018-04-11 06:49:58

标签: html angularjs angularjs-filter

我想让过滤器只在一个元素上工作。 为了制作过滤器,我搜索了SO,并想方设法制作我想要的。 但我使用'select'标签选择元素适用于过滤器,当选择的值为NULL时我遇到了问题。

<div class="input-group">
    <select class="form-control" ng-model="setParam">
        <option value="">All</option>
        <option value="atName">Name</option>
        <option value="atComp">Company</option>
        <option value="atDep">Department</option>
        <option value="atPos">Position</option>
        <option value="atTel">Tel</option>
        <option value="atEmail">Email</option>
    </select>
</div>
<div class="input-group">
    <span>
        <input type="text" class="form-control" ng-model="atParam[setParam]">                               
    </span>

<tr data-ng-repeat="row in attendees | filter : atParam">

当选择的值为NULL时,问题是无法显示。 除NULL之外的所有东西都运行良好如果我解决它该怎么办? 或者,还有其他搜索方式吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您的要求是当您选择ALL时应显示所有记录。但是你没有。

为此,您需要向condition添加filter,具体取决于setParam

<tr data-ng-repeat="row in attendees | filter : setParam ? atParam : ''">

这是做什么的,

  • 它将首先搜索setParam。
  • 如果是not null,则使用您的atParam条件。
  • 如果为空,则过滤empty string,从而显示all records