因此,我一直在尝试制作一个自定义过滤器,该过滤器搜索“ Startswith”参数而不是“ Contains”。我写的每个过滤器似乎都无法正常工作。这是我要实现的目标的一个示例—> http://jsfiddle.net/DMSChris/9ptr9/
function FilterCtrl() { var scope = this; scope.doFilter = function(elem) { if(!scope.searchText) return true; return elem.last_name.toLowerCase().indexOf( scope.searchText.toLowerCase()) == 0; };
}
http://jsbin.com/OyubElO/1/edit-这是我现在所在的位置。
<ul border="1px" ng-repeat="msg in messages | filter:search:strict"> <li>{{msg.last_name}}</li>
任何帮助将不胜感激!
一种简单的方法是将新方法添加到您的范围。
$scope.startsWith = function (actual, expected) { var lowerStr = (actual + "").toLowerCase(); return lowerStr.indexOf(expected.toLowerCase()) === 0; }
然后在元素上更改过滤器语法。
<ul border="1px" ng-repeat="msg in messages | filter:search:startsWith">
这是上面示例的工作插件。