也许这不是很难,但是我不知道如何做,我才开始编程。
ItemDeleteComponent是一个您确定要删除吗,是或否,是,我要显示小吃栏已删除!很好,但是在“否”中,我不想显示消息失败消息失败,我想在服务器出现问题时显示。我不知道该如何一步步向我解释。 希望你理解我:)
onDeleteItem(item: Item) {
const dialogRef = this.dialog.open(ItemDeleteComponent, {
width: '30%',
data: {item: item.id}
});
dialogRef.afterClosed().subscribe(result => {
if (!result) {
this.matSnackBar.open('Deleted!', 'OK', {
duration: 2000,
});
}
else {
this.matSnackBar.open('Failed', 'OK', {
duration: 2000,
});
}
}
}
ItemDeleteComponent:
是:
async onDeleteArtisti(id: number) {
await this.apiService.deleteArtist(id).toPromise();
this.dialogRef.close(); }
否:
closeDialog() {
this.dialogRef.close(); }
答案 0 :(得分:0)
当前,您的小吃店逻辑基于对话框关闭操作的结果(未显示代码,但是我怀疑dialogRef.afterClosed()
Observable返回的'result'变量表示……的正/负操作)。您的对话框)。
如果要基于服务器请求的结果创建小吃店逻辑,则最好在进行api调用时订阅Promise结果:
onDeleteArtisti(id: number) {
this.apiService.deleteArtist(id).toPromise()
.then(success => this.matSnackBar.open('Deleted!', 'OK', {
duration: 2000,
}), error => this.matSnackBar.open('Failed', 'OK', {
duration: 2000,
})
);
this.dialogRef.close();
}
有关更多信息,请查看有关Promise和Observables的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html
还请检查对话框组件的文档,以了解dialogRef.afterClosed()
可观察值返回的值。