【发布时间】:2020-01-11 10:14:38
【问题描述】:
我目前是 Angular 的新手。
异步管道的主要目标之一是自动为您处理订阅和取消订阅。
1. 在处理删除或更新(都是 API 服务)时,是否需要通过 ngOnDestroy 取消订阅?
projects$: Observable<Project[]>;
constructor(
private projectService: ProjectService,
) { }
ngOnInit() {
this.loadProject();
}
loadProject(){
this.projects$ = this.projectService.getProjects()
.pipe(
map(result => {
if(result.success){
return result.data;
}
})
);
}
deleteProject(){
if(this.projectToDelete){
const id = this.projectToDelete.id;
this.projectService.deleteProject(id).subscribe(result => {
if(result.success){
this.loadProject();
}
});
}
}
-
是否有另一种方法可以从 Observable 中删除特定元素,而无需再次调用刷新
projects$的 api?像这样的东西,而不是上面的那个://In this case this.projects type is not an Observable. deleteProject(){ if(this.projectToDelete){ const id = this.projectToDelete.id; this.projectService.deleteProject(id) .subscribe(result => { if(result.success){ this.projects = this.projects.filter(item => { return item.id != id; }); this.projectToDelete = null; this.closeModal(); } }); } }
【问题讨论】: