Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeScript:TypeError:无法读取属性';推动';未定义的_Javascript_Angularjs_Typescript - Fatal编程技术网

Javascript TypeScript:TypeError:无法读取属性';推动';未定义的

Javascript TypeScript:TypeError:无法读取属性';推动';未定义的,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我想用Angular 2做一个应用程序。现在我遇到了一个我无法解决的问题 数组的函数之一应该是push(object:T) 我定义了一个我创建的对象数组。但当我尝试向该数组添加值时,我收到以下错误:TypeError:无法读取未定义的属性“push” 此错误的主要原因之一是人们忘记定义数组。但我正在定义它,我尝试了多种方法,但仍然是相同的错误 export class Home { activeDossiers: Array<Dossier> = new Array();

我想用Angular 2做一个应用程序。现在我遇到了一个我无法解决的问题

数组的函数之一应该是push(object:T)

我定义了一个我创建的对象数组。但当我尝试向该数组添加值时,我收到以下错误:TypeError:无法读取未定义的属性“push”

此错误的主要原因之一是人们忘记定义数组。但我正在定义它,我尝试了多种方法,但仍然是相同的错误

export class Home {

    activeDossiers: Array<Dossier> = new Array();
    //Also tried:
    //activeDossiers: Dossier[] = [];
    //activeDossiers = [];
    //activeDossiers: Array<Dossier> = [];

    constructor() {
        var dossierApi = new DossierApi();
        dossierApi.getActiveDossiers().then((dossiers) => {
            dossiers.forEach(function (obj, i) {
                console.log(obj);
                if(obj.dossierType === Values.Visible) {
                    this.activeDossiers.push(obj);
                }
            });
        });
    }
}
导出类主页{
activeDossiers:Array=newarray();
//还尝试:
//活动档案:档案[]=[];
//活动档案=[];
//活动档案:数组=[];
构造函数(){
var dossierApi=新的dossierApi();
dossierApi.getActiveDossiers()。然后((档案)=>{
档案。forEach(职能(obj,i){
控制台日志(obj);
if(obj.dossierType==Values.Visible){
这个.activeDossiers.push(obj);
}
});
});
}
}

您正在使用匿名
函数()
语法进行回调;此语法不保留此。相反,你应该:

        dossiers.forEach((obj, i) => { // IMPORTANT PART HERE!!!
            console.log(obj);
            if(obj.dossierType === Values.Visible) {
                this.activeDossiers.push(obj);
            }
        });

您正在使用匿名
函数()
语法进行回调;此语法不保留此。相反,你应该:

        dossiers.forEach((obj, i) => { // IMPORTANT PART HERE!!!
            console.log(obj);
            if(obj.dossierType === Values.Visible) {
                this.activeDossiers.push(obj);
            }
        });