2016-04-01 3 views
1

Я хочу настроить фильтр в Angular.js.RegExp фильтр в JavaScript (Angular.js)

В случае, если объект имеет name == null, и вставить «U», чтобы filter-> она возвращает obj, который name == null потому re.test(null)=true, но другие символы возвращающегося false. Можешь мне сказать почему? Как я могу предотвратить этот случай?

+0

Это URL для пользовательского фильтра: http://jsfiddle.net/fredrik/26fZb/1/ –

ответ

0

Вы должны проверить, если obj.name также определяется перед тестированием с регулярным выражением:

$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()); 
}; 

В противном случае, null отлиты в урожайности "null" строкового типа, и это соответствует конечно.

Демо:http://jsfiddle.net/26fZb/232/

Смежные вопросы