调用deleteProject时,将出现confirm对话框,但如果用户单击cancel,则好像他们单击OK,代码意外地进入if语句(console中没有错误)。如果我将If语句中的服务调用替换为window.confirm('是否确实要删除此租户?')它直接在组件中按预期工作。
一定有一个教训,我需要学习使用角度单例服务。
@Injectable()
export class DialogService {
confirm(message?: string): Observable<boolean> {
const confirmation = window.confirm(message || 'Is it OK?');
return of(confirmation);
}
}
删除组件中的函数:
deleteProject(id: number) {
if (this.dialogService.confirm('Are you sure you want to delete this project?')) {
this.projectService.deleteProject(id).subscribe(() => {
this.projects.forEach((cur, index) => {
if (id === cur.id) {
this.projects.splice(index, 1);
}
});
});
}
}