我试图让过滤器只显示列表中与用户输入匹配的元素。
#70303775861760
并且在观点上:
.filter('removeAcentos', function(){
return function (source, item) {
var re = new RegExp("" + item.toLowerCase() + "");
angular.forEach(source, function(word){
if(re.test(word.nomeCurso.toLowerCase()) === true){
return true;
}
});
//
return false;
};
})
但是,我不明白为什么它不起作用。我测试了正则表达式,过滤函数返回true表示正确的值。任何想法?
答案 0 :(得分:2)
您的函数没有返回数组。函数返回的唯一内容是false
forEach
也不是适合这项工作的合适工具。尝试使用Array.prototype.filter()
并记住返回新数组:
.filter('removeAcentos', function(){
return function (source, item) {
if(!source){
return false;
}
var re = new RegExp("" + item.toLowerCase() + "");
// return filtered array
return source.filter( function(word){
return re.test(word.nomeCurso.toLowerCase());
});
};
})