1

我想根据下拉列表中选择的条件过滤表格。在 newList 函数中写入 val 不会过滤表。任何建议如何通过这个。

  • HTML

    <tbody>
    
      <tr ng-repeat="friendObj in newfriends">
    
        <td>{{friendObj.name}}</td>
    
        <td>{{friendObj.phone}}</td>
    
        <td>{{friendObj.age}}</td>
      </tr>
    
    </tbody>
    

    • JS

       $scope.newList = function (val) {
            alert(val);
      $scope.newfriends = $filter('filter')($scope.friends, {
          val: $scope.searcha
      })
      
4

2 回答 2

1

根据您的代码,您尝试多次添加条件,然后您想使用这些条件进行过滤。

在您的 JSON 中,这里只有 3 个属性。{姓名、电话和年龄}。

因此,您的标准不应超过 3 行,并且不应有两次相同的内容。如果你这样做,你需要构建自己的过滤器。使用以下代码

$scope.newList = function() {
  var searchBy = {};
  angular.forEach($scope.newCriteria, function(criteria, key) {
    searchBy[criteria.name] = criteria.value;
  });
  $scope.newfriends = $filter('filter')($scope.friends, searchBy);
}

和HTML如下

<div id="searchy">

<ul class="list-unstyled">
  <li style="display: inline-block" ng-repeat="crtia in newCriteria">
    <table>
      <tr>

        <td>
          <select ng-model="crtia.name" ng-options="searchopt for searchopt in searchcriteria " ng-click="searchy.check()"></select>
        </td>
        <td>
          <input ng-model="crtia.value" placeholder="{{crtia.name}}" ng-change="newList()" />
        </td>

      </tr>
    </table>
  </li>
</ul>  <button ng-click="searchy.generate()">Add Criteria</button> </div>

这是更新的 plunker。 http://plnkr.co/edit/r5OcI366dyvLQ24fFIje?p=preview

于 2015-11-04T06:12:56.517 回答
0

可能您想根据下拉选择进行过滤,然后创建适当的搜索模型,例如

<select ng-model="selectedsearchcriteria"
        ng-options="searchopt for searchopt in searchcriteria "></select>

<!--When you select dropdown 'selectedsearchcriteria' update like 'name', 'age' and so on
then ng-model="search[selectedsearchcriteria]" forms like search.name, search.age and so on-->
<input name="search" ng-model="search[selectedsearchcriteria]" placeholder="{{selectedsearchcriteria}}" />

<!--Here 'filter:search:strict' filter like search.name it is like property based filter-->

<tr ng-repeat="friendObj in newfriends |filter:search:strict">

另外我认为您不需要$filter('filter')在控制器中使用

检查更新插件

于 2015-11-04T06:35:37.670 回答