【问题标题】:How to sequentially execute resolve for parent's route and then for children routes?如何依次为父路由执行解析,然后为子路由执行解析?
【发布时间】:2016-10-13 02:17:06
【问题描述】:

这是 angular2 项目的简化路线:

export const ROUTES: Routes = [
  {
    path: "user/:user_id",
    component: UserAuthComponent,
    resolve: {
      _auth: UserAuthResolver
    },
    children: [
      {
        path: "",
        component: UserComponent,
        resolve: {
          user: UserResolver
        }
      },
      // .... many more routes that require authentication cookie 
    ]
  }
]

UserAuthResolver 向服务器发出 GET 请求以设置身份验证 cookie(这是 UserResolver 以及所有子路由解析器(此处未显示)成功所必需的)。

但似乎 angular2 并没有顺序执行父路由中的 resolvechildren 路由中的 resolve,而是与所有“相关”resolve 竞争。因此,很多时候,上面的代码会提示认证错误。

有没有办法解决这个问题?

仅供参考,我不能将UserAuthResolver 放在UserComponent 中,因为那样的话,这意味着将“身份验证”代码复制到所有需要它的地方。


编辑:这个东西被称为nested resolve。简而言之,如何处理 angular2 中的嵌套解析?在 Angular1 中,它似乎是 possible

【问题讨论】:

标签: javascript angularjs angular angular2-routing


【解决方案1】:

显然,这是一个 known bug 并且是新 2.1.0 版本中的 fixed

我已经确认这个版本确实解决了这个问题。

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多