【发布时间】:2021-05-19 10:36:44
【问题描述】:
我做错了,但找不到此问题的确切解决方案。
我有一个带有视图组件A的路由器:
const routes: Routes = [
{ path: '', redirectTo: '/list', pathMatch: 'full' },
{ path: 'list', component: ListComponent },
{ path: 'a/:id/:version', component: AComponent, resolve: { a: DataResolver}, runGuardsAndResolvers: 'always' }
];
一切正常 - 我正在导航到组件 A,例如 /a/1/v1 - 一切都已完美初始化。
问题:组件正在加载视图内容的其他版本的功能,我希望如果我只是在 A 组件视图中的某处单击 <a routerLink="/a/1/v2">load version 2</a>,则视图会重新生成。
实际上发生了什么
- 浏览器中的网址已更改
- 调用与路由关联的数据提供程序并获取与新 url 关联的新数据
- 没有调用构造函数或
ngOnInit
有趣的是,如果我配置 /b/.. 并将其分配给路由器配置中的相同 A 组件,则在从 /a/1/v1 导航到 /b/1/v2 后一切都会按预期工作。
const routes: Routes = [
{ path: '', redirectTo: '/list', pathMatch: 'full' },
{ path: 'list', component: ListComponent },
{ path: 'a/:id/:version', component: AComponent, resolve: { a: DataResolver}, runGuardsAndResolvers: 'always' },
{ path: 'b/:id/:version', component: AComponent, resolve: { a: DataResolver}, runGuardsAndResolvers: 'always' },
];
我有点失落。感谢您的帮助。
【问题讨论】: