Angular JS如何切换复选框值上的过滤器?

时间:2017-07-07 03:55:58

标签: angularjs checkbox

我有这个代码,现在我想为" emp_nome"创建一个复选框。和#34;本地"当我检查其中任何一个时,我只能搜索我的输入以获取那些选中的值,请帮助

<input type="text" id="myInput" ng-model="search.SN" placeholder="Search for names..">
<div style="overflow-x:auto;">

  <table id="myTable">
    <tr style="border-bottom:1px solid black;" class="header">
      <td>ID</td>
      <td>Nome Entidade</td>
      <td>Ultima Localização</td>
      <td>Categoria</td>
      <td>Nº de Reclamações contra Entidade</td>
      <td>Data da última reclamação</td>
    </tr>

    <tr ng-repeat="x in myData | filter: {emp_nome: search.SN} || filter: {local: search.SNs}" id="removal">
      <td>{{ x.id }}</td>
      <td style="background:rgba(0, 159, 255, 0.24);font-size:17px;"><u>{{ x.emp_nome }}</u></td>
      <td>{{ x.local }}</td>
      <td>{{ x.tipo }}</td>
      <td>
        <center>{{ x.emp_rec }}</center>
      </td>
      <td>
        <center>{{ x.data }}</center>
      </td>
    </tr>

  </table>

  <br><br>

</div>

1 个答案:

答案 0 :(得分:0)

您可以动态制作过滤器表达式并在控制器中对其进行管理。我的意思是ng-repeat="x in myData | filter: {emp_nome: search.SN}"可能是ng-repeat="x in myData | filter: filterObject"

您可以设法填充此filterObject以使用过滤器中的对象,例如使用ng-change(在输入文本和复选框中)

ng-change中的例子可能是:

if (checkboxValue === 'local') { //local checked
  $scope.filterObject = {local: $scope.search.SN};
} else if (checkboxValue === 'emp_nome') {//emp_nome checked
  $scope.filterObject = {emp_nome: $scope.search.SN};
} else { //filter by all
  $scope.filterObject = $scope.search.SN;
}

它只是一个例子,我不知道你是如何管理它的

有关过滤器的官方文档:https://docs.angularjs.org/api/ng/filter/filter