为什么我得到TypeError:undefined不是Angular中的对象(评估'')?

时间:2018-02-08 23:44:42

标签: angular angular-services angular-components

我有自定义服务deleteCenter(id: number): Observable<{}> { console.log(id); const url = `${this.D_ROOT_URL}${id}`; return this.http.delete(url); } ,其中包含以下删除方法:

<button type="submit" (click)="deleteCenter()">Delete</button>

我在模板中有按钮:

list-centers.component.ts

deleteCenter(): void { if (this.getCheckedCenters.length > 0) { this.getCheckedCenters.forEach(function (id) { id = +id; this.centers = this.centers.filter(c => c.id !== id); this.centerService.deleteCenter(id).subscribe(); }); } } 中调用以下方法:

this.getCheckedCenters

console.log返回id数组,并打印list-centers.component.ts,返回有效数字。

但是center.service.ts中的方法在控制台中打印错误,并且没有调用centers: Center[];中的其他方法。

错误:

  

TypeError:undefined不是对象(评估&#39; this.centers&#39;)

pipenv run

中心阵列的数据: enter image description here

1 个答案:

答案 0 :(得分:2)

通过使用foreach(函数...,你正在失去这个范围。你可以尝试使用lambda foreach(p =&gt; {...

这是因为typescrypt保证lambda中的作用域而不是函数。你也可以使用函数和闭包