一尘不染

Angular2 Router 2.0.0是否在相同的URL加载了不同的参数时不重新加载组件?

html

我的.routing.ts文件中有这个

export const routing = RouterModule.forChild([
{
    path: 'page/:id',
    component: PageComponent
}]);

我的PageComponent文件检查id参数并相应地加载数据。在路由器的早期版本中,如果我从/ page / 4转到/ page /
25,则该页面将“重新加载”并且组件将更新。

现在,当我尝试导航到/ page / X时,其中X是id,它只会第一次加载,然后url会更改,但是组件不会再次“重新加载”。

是否需要传递某些内容以强制重新加载组件并调用ngOnInit事件?


阅读 402

收藏
2020-05-10

共1个答案

一尘不染

更新2

该答案仅适用于很久以前停产的路由器版本。

更新1

现在已通过修复了新路由器的(Angular2.3),可提供自定义重用策略。

原版的

这是一个已知问题。当前,尚无办法使路由器在仅参数路由更改时重新创建组件。

他们讨论了最终实施一些重用策略的计划。

您可以订阅参数更改并在那里执行代码,而不是在 ngOnInit()

2020-05-10