Angular 角度5:视图未更新
在我看来,我正在呈现一个技能列表,使用可观察和*ngFor 我使用以下代码检索技能:Angular 角度5:视图未更新,angular,typescript,rxjs,observable,Angular,Typescript,Rxjs,Observable,在我看来,我正在呈现一个技能列表,使用可观察和*ngFor 我使用以下代码检索技能: getSkills(): void { this.skillsDataService.getSkills() .subscribe( skills => this.skills = skills.sort( this.skillSort ) ); } 不过,我已经了解到,最好使用命名函数,不要太多嵌套。因此,我将代码更改为: getSkil
getSkills(): void {
this.skillsDataService.getSkills()
.subscribe(
skills => this.skills = skills.sort( this.skillSort )
);
}
不过,我已经了解到,最好使用命名函数,不要太多嵌套。因此,我将代码更改为:
getSkills(): void {
this.skillsDataService.getSkills()
.subscribe(
this.processSkills
);
}
processSkills(skills: Skill[]): void {
this.skills = skills.sort( this.skillSort );
}
现在,即使已填充this.skills,视图也不会更新。当您这样调用时,processSkills中的“this”将不会成为控制器。为了理解我的意思,您应该在processSkills中注销“this”,并学习如何在JavaScript中使用“this”。
为了使代码正常工作,请尝试以下方法:
.subscribe(
this.processSkills.bind(this)
);
当您这样称呼它时,processSkills中的“this”将不是控制器。为了理解我的意思,您应该在processSkills中注销“this”,并学习如何在JavaScript中使用“this”。
为了使代码正常工作,请尝试以下方法:
.subscribe(
this.processSkills.bind(this)
);
天哪,我相信你是对的。我早该知道。。typescript新手,熟悉javascript。Thnx!(一旦stackoverflow允许,我会接受你的回答)天哪,我相信你是对的。我早该知道。。typescript新手,熟悉javascript。Thnx!(一旦stackoverflow允许,将接受您的答案)