![](/img/trans.png)
[英]Angularjs: Search filter not working when name starting with ! (exclamation mark)
[英]Angularjs Filter search starting with given text
我有以下html代码:
<p><input type="text" ng-model="test"></p>
<ul>
<li ng-repeat="x in names | filter:test">
{{ x }}
</li>
</ul>
和相应的JS是:
<script>
angular.module('myApp', []).controller('namesCtrl', function($scope) {
$scope.names = [
'Jabi',
'Cabi',
'Margareth',
'Hege',
'Joe',
'Gustav',
'Birgit',
'Mary',
'Kai'
];
});
</script>
问题是当我键入“ bi”时,过滤器将返回所有包含“ bi”的名称,但是我希望该过滤器应仅返回以“ bi”开头的名称(或watever被写在输入文本框中)
由于您只需要匹配的大小写/字母,因此您必须按如下所示创建自定义过滤器,
演示
angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.names = [ 'Jabi', 'Cabi', 'Margareth', 'Hege', 'Joe', 'Gustav', 'Birgit', 'Mary', 'Kai' ]; $scope.onlyMatch = function (input, output) { var Str = (input + "").toLowerCase(); return Str.indexOf(output.toLowerCase()) === 0; } });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <body ng-app="myApp" ng-controller="namesCtrl"> <p><input type="text" ng-model="test"></p> <ul> <li ng-repeat="x in names | filter:test:onlyMatch"> {{ x }} </li> </ul> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.