1

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

这是我的路由器选项。

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

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

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

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

有没有办法可以使用 resolve 作为 chanining?还是我应该一次解决所有工作?

4

1 回答 1

1

Resolve 是 Angular 路由器支持的守卫之一。如果你有不止一个守卫,它们会以不特定的顺序异步执行。

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

于 2017-08-25T11:02:22.757 回答