我有我正在遍历的对象,但是将其分配给全局健康变量时却出错。
这是我的全局变量
public health: any;
constructor(private forumservice: ForumService) {}
ngOnInit() {
this.forumservice.getHealths().subscribe(
healths => {
Object.keys(healths).forEach(function (key) {
var topics = healths[key];
到目前为止,我一直在获取所需的所有数据,但是当我将结果传递给全局变量时,会报错。
this.health = topics.Topics;
然后我尝试在此处声明另一个变量,例如const health,但它不会在DOM上呈现,只是显示空白
});
console.log(this.health);
},
errmess => (this.errMess = errmess)
);
答案 0 :(得分:1)
使用箭头功能的ES6功能是因为它没有像传统的功能表达式一样的this
。因此,您需要像这样重写迭代:
Object.keys(healths).forEach((key) => {
...
this.health = topics.Topics;
...
}
直到箭头函数,每个新函数都定义了自己的此值(根据函数的调用方式,在构造函数中为新对象,在严格模式函数调用中未定义,如果该函数被称为“对象方法”等)。事实证明,采用面向对象的编程风格并不理想。
有关箭头功能的更多信息 here