相关疑难解决方法(0)

Angular:解析失败时显示目标 URL

我有一个简单的解析器,用于如下路线/orders/first

resolve(): Promise<Order> {
    return this.orderService.get()
        .then((response) => response.order)
        .catch(error => Promise.reject(error));
}
Run Code Online (Sandbox Code Playgroud)

我还有一个重定向到错误页面的错误处理程序:

this.router.navigate(['/error'], { skipLocationChange: true });
Run Code Online (Sandbox Code Playgroud)

我希望 URL 是/orders/first这样,如果用户刷新他可能能够查看该页面。这也会使后退按钮返回到不正确的页面(上一页)

问题是解析器在路由激活之前运行,因此 URL 不会更改。

有没有办法做到这一点?


编辑:找到这个解决方法:

  1. 监听路由器事件 NavigationStart并将路由保存到变量
  2. 在重定向到错误页面之前设置位置 URL: this.location.go(nextRoute.url);
  3. 重定向skipLocationChange设置为 true

angular2-routing angular

5
推荐指数
1
解决办法
1265
查看次数

标签 统计

angular ×1

angular2-routing ×1