Angular JS'Startswith'自定义过滤器

Chr*_*ena 14 javascript jquery startswith filter 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; 
};
Run Code Online (Sandbox Code Playgroud)

}

http://jsbin.com/OyubElO/1/edit - 这就是我现在所处的位置.

  <ul border="1px" ng-repeat="msg in messages | filter:search:strict">

<li>{{msg.last_name}}</li>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

mar*_*ark 33

一种简单的方法是在范围中添加新方法.

$scope.startsWith = function (actual, expected) {
    var lowerStr = (actual + "").toLowerCase();
    return lowerStr.indexOf(expected.toLowerCase()) === 0;
}
Run Code Online (Sandbox Code Playgroud)

然后更改元素的过滤器语法.

<ul border="1px" ng-repeat="msg in messages | filter:search:startsWith">
Run Code Online (Sandbox Code Playgroud)

这是一个上面的例子的工作plunkr.