我对 Angular 还很陌生,我的问题可能看起来很基础,但我们将不胜感激。我目前正在编写一个应用程序来教自己一些真正的开发技能。在我的应用程序中,我有一个 Angular 组件,它导入了我编写的提供数据的服务。
这是我的组件
@Component({
selector: 'music-instrument-list',
templateUrl: './instrument-report.component.html',
styleUrls: ['./instrument-report.component.css']
})
export class InstrumentReportComponent implements OnInit, OnDestroy {
constructor(public apiService: ApiService) {}
public availableInstruments: any[];
ngOnInit() {
this.apiService.getInstruments().subscribe((result) => {
this.availableInstruments = result;
});
}
ngOnDestroy() {
// how do I unsubscribe?
}
}
这很简单,但如果我尝试添加this.apiService.getInstruments.unsubscribe()
到ngOnDestroy
块中,则会收到错误 P roperty 'unsubscribe' does not exist on type => Observable'。我什至考虑在类似链接.unsubscribe()
之后添加,.subscribe()
但这只会让我的页面挂起。我也没有错误。有人可以告诉我如何最好地退订吗?ngOnDestroy
我是否需要将 api 调用分配给变量,然后在块中的变量名称上使用 .unsubscribe()