我有以下代码段:
usersTempList=[];
ngOnInit() {
this.obj = {user: JSON.parse(localStorage.userDetails),room:"Sala" + this.projectID, projectID: this.projectID};
this.loggedUser = JSON.parse(localStorage.userDetails).UserID;
this.roomList.push(this.obj.room);
this.usersTempList=[];
console.log("Initialized array")
this.join(this.obj);
...
}
join(obj: any){
this.socket.emit("join",obj,this.getOnline);
}
getOnline(err,msg){
console.log(this.usersTempList);
console.log("Printed array");
this.usersTempList = JSON.parse(JSON.stringify(msg));
console.log("qwerty",this.usersTempList);
}
在浏览器中打开该组件,*ngFor
都不起作用(它不打印任何内容),console.log
第一行的getOnline
始终打印undefined
。同样,即使变量在后续行中进行了更新,*ngFor
仍然不会更新接口。
有人对此有任何线索吗?
谢谢!
答案 0 :(得分:1)
问题解决了,它发生了,因为我无法在我的范围内访问数组,所以我使用了一个箭头函数,它起作用了,usersTempList不再是未定义的。。
join(obj: any){
this.socket.emit("join",obj, (err,msg) => {
this.usersTempList=JSON.parse(JSON.stringify(msg))
});
}
谢谢大家!