AngularJS / Firebase 无法读取未定义的属性"toLowerCase"



我正试图将一个使用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()

相关内容

  • 没有找到相关文章

最新更新