Angular:如何始终重新加载URL但忽略片段? (使用RunGuardsAndResolvers吗?)

时间:2019-09-20 14:01:03

标签: angular angular-router angular-resolver

我“总是”希望重新加载我的解析器,并且只在设置片段时才忽略重新加载(例如: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,
     }
});

0 个答案:

没有答案