【问题标题】:Angular JS how can i switch filters on checkbox values changed?Angular JS如何在更改的复选框值上切换过滤器?
【发布时间】:2017-07-08 02:25:24
【问题描述】:

我有这段代码,现在我想创建两个复选框

<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>

【问题讨论】:

  • 将过滤器功能更改为控制器的功能,这将取决于您的范围值..

标签: angularjs checkbox


【解决方案1】:

您可以动态制作过滤器表达式并在控制器中对其进行管理。我的意思是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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多