具有完全匹配的angularjs过滤在最新版本中返回空值

时间:2016-07-01 04:48:33

标签: angularjs filter

我自己有一个带有filters here的angularjs样本,我可以使用true比较器过滤完全匹配的值,

 <table>
        <tr ng-repeat="user in users | filter:{name: name, phone: phone} : true">
            <td>{{user.name}}</td>
            <td>{{user.phone}}</td>
            <td>{{user.secret}}</td>
        </tr>
    </table>

使用angularjs版本1.1.5时,组合过滤器效果很好,因为当用户过滤并返回--select--位置时,它会为其他angularjs版本返回null。

参考:with angularjs 1.1.5with angularjs 1.4.x

2 个答案:

答案 0 :(得分:0)

您可以看到更新的demo。它可以满足您的要求。我已经在javascript中更新了AngularJS 1.4.8。

HTML代码

<div ng-app="plunker">

Name:  <select ng-model="name">
  <option value="">select</option>
  <option value="John1">John1</option>
  <option value="Mike">Mike</option>
</select>
Phone:  <select ng-model="phone">
  <option value="">select</option>
  <option value="555-1276">555-1276</option>
</select>
<table>
    <tr ng-repeat="user in users | filter:{name: name, phone: phone} : true">
        <td>{{user.name}}</td>
        <td>{{user.phone}}</td>
        <td>{{user.secret}}</td>
    </tr>
</table>

<强> JS

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) { 


 $scope.users = [{name:'John1', phone:'555-1276', secret:'shhh'},
                           {name:'John1', phone:'800-BIG-MARY', secret:'psst'},
                           {name:'Mike', phone:'555-4321', secret:'shhh'},
                           {name:'Adam', phone:'555-5678', secret:'shhh'},
                           {name:'Julie', phone:'555-8765', secret:'shhh'}];
});

答案 1 :(得分:0)

在使用ng-repeat = "user in users"时与user.name匹配,而不是名称。