2016-04-01 12 views
1

Ich möchte benutzerdefinierten Filter in Angular.js.RegExp Filter in JavaScript (Angular.js)

Falls ein Objekt hat name == null, und ich einfügen „u“ zu filter-> es obj gibt, die name == null weil re.test(null)=true, aber andere Zeichen false zurückkehren. Kannst du mir sagen warum? Wie kann ich diesen Fall verhindern?

+0

Dies ist url, um benutzerdefinierte Filter: http://jsfiddle.net/fredrik/26fZb/1/ –

Antwort

0

Sie, wenn obj.name überprüfen müssen, ist auch vor dem Test mit regexp definiert:

$scope.searchFilter = function(obj) { 
    var re = new RegExp($scope.searchText, 'i'); 
    return !$scope.searchText || (obj.name && re.test(obj.name)) || re.test(obj.age.toString()); 
}; 

Andernfalls null"null" zu String-Typ Erträge gegossen und es wird natürlich abgestimmt.

Demo:http://jsfiddle.net/26fZb/232/