我“总是”想重新加载我的解析器,并且只在设置片段时忽略重新加载(例如:URL/xxx?yyy#FRAGMENTHERE)
我错过了什么还是在 Angular 中不可能?
这是我尝试过的:
在 app-routing-module.ts
...
onSameUrlNavigation: 'reload',
...
在 XXX-routing-module.ts
测试1:
...
runGuardsAndResolvers: 'always' as RunGuardsAndResolvers,
...
这个不起作用,因为当片段更改时,解析器被调用
测试 2,3,4:
runGuardsAndResolvers: 'pathParamsOrQueryParamsChange' as RunGuardsAndResolvers,
runGuardsAndResolvers: 'paramsOrQueryParamsChange' as RunGuardsAndResolvers,
runGuardsAndResolvers: 'paramsChange' as RunGuardsAndResolvers,
那些不起作用,因为如果我试图在同一个 URL 上重新加载它不会调用解析器
PS:导航看起来像这样
this.router.navigate([], {
queryParamsHandling: 'merge',
queryParams: {
ProgramState: ProgramState.Reading,
Session: 0,
}
});