一尘不染

Angular JS'Startswith'自定义过滤器

angularjs

因此,我一直在尝试制作一个自定义过滤器,该过滤器搜索“ 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>

任何帮助将不胜感激!


阅读 238

收藏
2020-07-04

共1个答案

一尘不染

一种简单的方法是将新方法添加到您的范围。

$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">

这是上面示例的工作插件

2020-07-04