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

时间:2014-07-02 18:58:53

标签: angularjs firebase angularfire

我正在尝试将使用PHP API的应用程序转换为将AngularJS应用程序加载到使用Firebase作为后端的应用程序。

我想我几乎得到了它但却抛出了错误

TypeError:无法读取未定义的属性'toLowerCase'

这是我使用'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;
    };

});

知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:1)

您正尝试在toLowerCase的属性上调用i方法,该属性不存在。假设i通常包含这些值,但有时会遗漏其中的一些,您可以通过更改每个

来修复它
if(i.whatever.toLowerCase()

if(i.whatever && i.whatever.toLowerCase()