So I've been trying a while to make a custom filter that searches for the 'Startswith' parameters rather than the 'Contains'. Every filter that I've written haven't seem to work properly. Here is an example of what I'm trying to achieve ---> 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 - Here is where I'm at right now.
<ul border="1px" ng-repeat="msg in messages | filter:search:strict">
<li>{{msg.last_name}}</li>
Any help would be greatly appreciated!
A simple way to do this is to add a new method to your scope.
Then change the filter syntax on your element.
Here is a working plunkr with the example above.
Filter in object
Now pure
javascript
itself has thestartsWith()
method on strings. But it will not be supported byIE11
.See here:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith