在角度上,我得到一个错误:无法读取未定义的属性“水果”。在我的课堂上,我有:
export class myClass implements OnInit {
fruits: any[];
doSomething() {
this.myArray.forEach(function(m) {
const my = { test: true };
this.fruits.push(my);
}
}
我可能要添加到数组中的类型不同,因此我没有定义接口。是什么原因造成的?
答案 0 :(得分:1)
如果要访问此选项,则应使用箭头功能:
fruits: any[] = [];
doSomething() {
this.myArray.forEach(m => {
const my = { test: true };
this.fruits.push(my);
}
}
箭头函数将使其受到词法限制,从而使您可以从对象上下文本身(“外部”范围)访问this
。进一步了解here。
答案 1 :(得分:0)
您必须初始化水果
export class myClass implements OnInit {
public myArray: string[] = ['banana', 'Apple, 'Kumquat']
public fruits: {test: boolean}[] = [];
constructor() {}
ngOnInit() {}
public doSomething(): void {
let my: any = {};
this.myArray.forEach( m => {
my = { test: true };
this.fruits.push(my);
});
}
}