如何有条件地使用router.navigate导航?

时间:2019-06-26 15:57:46

标签: angular angular7 angular7-router

我有一张实体表。单击一行时,您会转到代表该实体的另一页(查看页)。该功能使用router.navigate

当实体被删除时,您将无法进入其视图:您会看到404试图打开URL。没有通用的方法来调用后端并找出该实体是否仍然存在。

所以我需要某种条件导航:如果链接不再有效,我也不想导航到它(也许显示一些模态等)。如何使用Angular做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用HttpClient来查看页面是否返回状态200。

例如:

constructor(private http: HttpClient) {
  this.http.get('/').subscribe(res => {
  }, error => {
    if (error.status === 200) console.log(error.status);
  })
}

即使状态为200,也始终会返回错误,因此请检查状态200,然后使用导航。完成后,您可能需要退订。