Angular 5-检查服务器错误

时间:2018-08-03 17:21:04

标签: angular angular5 angular6

也许这不是很难,但是我不知道如何做,我才开始编程。

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(); }

1 个答案:

答案 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()可观察值返回的值。