【发布时间】:2018-09-17 07:05:42
【问题描述】:
我正在尝试向我的应用程序添加路由,并且我有一个带有 parentResolver 的父路由和一个带有 Child Resolver 的子路由。当我访问“/parent”时,父解析器完美启动。
但问题是,当我访问“/parent/child”时,父解析器会在子解析器启动之前再次启动。我不想在导航到孩子时运行父解析器页。
那么有没有办法在调用子路由时跳过父解析器。 这是我的路线配置
{
path: 'parent',
component: ParentComponent,
resolve: {parentData: ParentResolver},
runGuardsAndResolvers: 'paramsOrQueryParamsChange',
children: [
{
path: 'child',
component: ChildComponent,
resolve: {childData: ChildResolver},
runGuardsAndResolvers: 'paramsOrQueryParamsChange'
}
]
}
【问题讨论】:
-
您也可以在不使用解析器的情况下定义路由。
-
我正在使用解析器。对于父路由和子路由。因此,如果 url 是
/parent?someparam=somevalue,则父解析器使用查询参数。子解析器也应该发生同样的情况。 -
这就是我告诉你的,不用它也能做到。我可以共享路由代码,您可以在不使用它们的情况下定义路由
-
@Exterminator 我知道它可以在没有的情况下完成。但我需要解析器。
-
你的
ParentComponent不是真正的父母,如果孩子在场时行为发生变化的话。因此,也许您可以将其拆分为一般需要的内容(没有解析器的父路由)和仅在没有子节点存在时才需要的内容(带有父解析器的新路由)。
标签: angular