TypeError:无法读取AngularJS未定义的属性“ push”

时间:2018-08-29 17:11:51

标签: javascript arrays angularjs

我正在尝试将数据推送到此CompareArray中,但出现以下错误:

TypeError: Cannot read property 'push' of undefined
    at Object.addResult (src\services\CompareService.js:22)

代码:

this.addResult = function (type, result) {
    this[type.toLowerCase() + 'CompareArray'].push(result);
    this.checkToDisplayLinks(type);
    this.checkToDisableCheckboxes(type);
};

2 个答案:

答案 0 :(得分:0)

在推送任何内容之前,请检查其是否未定义和初始化

if(this[type.toLowerCase() + 'CompareArray']){
 this[type.toLowerCase() +  'CompareArray'].push(result);
}
else
{
   this[type.toLowerCase() +  'CompareArray'] = [result];
}

答案 1 :(得分:0)

如果仔细观察,错误就是自我描述。

Cannot read property 'push' of undefined at Object.addResult 

addResult是您的方法。您正在

上进行“推送”
this[type.toLowerCase() + 'CompareArray'].push(result);
它说的

-未定义的“推”。表示

this[type.toLowerCase() + 'CompareArray'] 

未定义。推是仅在数组上可用的方法。

希望这会有所帮助。