2017-06-15 93 views
0

具有角的过滤器的问题。1个字符过滤器,角JS

滤波在有角的,当i型两个字符,如果i型1个字符,没有反应的数据过滤器发生。

<input type="text" ng-model="filterAge"> 

<table> 
    <tr ng-repeat="r in vm.Data | filter: filterAge"> 
    <td>{{r.Age}}</td> 
    </tr> 
</table> 

我如何角为1个字符做一个过滤器?

例如,如果键入1,它并不过滤,如果我输入19,它过滤...

+0

您的未关闭,需要位于

标记中... – AKMorris

+1

值得一提的是,如果您只想按年龄过滤项目,你应该这样做:'

' – developer033

+0

其实代码使用较少的多个属性进行筛选,我对其他领域也一样,1个字符,什么都没有,发生了同样的问题,超过1,过滤器发生,有没有长度限制例如,在自动建议我们说maxLength搜索,例如:3,所以当用户输入3个字符,搜索发生,同样,想知道是否有任何长度检查发生在过滤器内?任何人都可以帮助我,如果我需要创建一个自定义过滤器? – Sharpeye500

回答

2

你可能没有在vm.Data或所有任何一个数字的值值中包含'1' - 尝试使用0-9中的所有数字进行输入。

我有你的过滤器,个位数在这里工作:

https://jsfiddle.net/AKMorris/7xn77eeh/

HTML:

<div data-ng-app='myApp' data-ng-controller='myCtrl'> 

    <input type="text" ng-model="filterAge"/> 

<table> 
<tr ng-repeat="r in vm.Data | filter: filterAge"> 
<td>{{r.Age}}</td> 
</tr> 
</table> 

</div> 

的Javascript:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
     $scope.vm = {}; 
    $scope.vm.Data = [ 
    {"Age":19}, 
    {"Age":1}, 
    {"Age":2}, 
    {"Age":3}, 
    {"Age":22}, 
    {"Age":43} 
    ]; 
}); 
+0

谢谢,当它不存在的值时,它可能有未定义或null ? – Sharpeye500

+0

都能跟得上的角度会直接跳过那些尝试输入“5”作为更新过滤器在这里:https://jsfiddle.net/AKMorris/7xn77eeh/2/ – AKMorris

-2
<tr ng-repeat="r in vm.Data | filter: filterAge> 

你错过在ng-repeat结尾处输入收尾引号(“)