javascript - 如何解决 Angular 4 路由器中的更改

标签 javascript angular angular-router-guards angular4-router

我正在尝试链接路由器解析器

这是我的路由器选项。

  { path: '',
    component: AdminComponent,
    resolve: [
      SessionResolve,
      LocaleResolve
    ]
  }

我想调用SessionService(SessionResolve),然后用 session 数据的lang值调用LocaleService(LocaleResolve)

但是,上面的代码调用是同时解析的

我认为解决代码更改 here 但我不知道,因为我以前没有使用过 Angular4。

有没有一种方法可以将 resolve 用作链宁?还是我应该一口气处理所有工作?

最佳答案

Resolve 是 Angular 路由器支持的守卫之一。如果你有不止一名 guard ,他们将以没有特定顺序的异步方式执行。

如果您需要维护顺序,请创建另一个实现 Resolve 接口(interface)的类(例如 SessionAndLocaleResolve),并在该类中执行来自 SessionResolve 的函数,然后是来自 LocalResolve 的函数。 这样你的路由将有一个解析器 SessionAndLocaleResolve 并且你可以控制“子解析器”的执行顺序。

关于javascript - 如何解决 Angular 4 路由器中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45877844/

相关文章:

javascript - 使用谷歌翻译开发谷歌浏览器扩展

angular - 在 ag-grid 中实现一个按钮

javascript - 路由参数在守卫中不可用

angular - 如何优雅地从 ActivatedRouteSnapshot 获取完整的 url?

javascript - Sencha Touch 2 对接标签面板

javascript - Mongoose 异步默认值

javascript - 在 React 中更新数组中的元素(使用过滤器/ map )

Angular - 如何使用自定义 primeNG 图标

javascript - Angular/CLI : How to change the port for auto reload?

Angular ngrx : guards with side-effect