我正试图将一个使用PHP API将数据加载到AngularJS应用程序的应用程序转换为一个使用Firebase作为后端。
我想我快弄好了,但是它抛出了
错误TypeError: Cannot read property 'toLowerCase' of undefined
这就是我使用'toLowerCase'的地方
app.filter('searchFor', function(){
return function(arr, searchString){
if(!searchString){
return arr;
}
var result = [];
searchString = searchString.toLowerCase();
angular.forEach(arr, function(i){
if(i.english.toLowerCase().indexOf(searchString) !== -1){
result.push(i);
}
if(i.spain.toLowerCase().indexOf(searchString) !== -1){
result.push(i);
}
if(i.germany.toLowerCase().indexOf(searchString) !== -1){
result.push(i);
}
if(i.france.toLowerCase().indexOf(searchString) !== -1){
result.push(i);
}
if(i.philippines.toLowerCase().indexOf(searchString) !== -1){
result.push(i);
}
});
return result;
};
});
你知道哪里出了问题吗?
您正在尝试对不存在的i
属性调用toLowerCase
方法。假设i
通常包含这些值,但有时缺少其中一些,您可以通过更改每个
if(i.whatever.toLowerCase()
if(i.whatever && i.whatever.toLowerCase()