微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 当相同的url加载了不同的参数时,Angular2路由器2.0.0没有重新加载组件?

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

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

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

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

是否需要传递一些东西来强制我的组件重新加载,并调用ngOnInit事件?

解决方法:

更新2

这个答案仅适用于很久以前停产的路由器版本.

有关如何在当前路由器中执行此操作,请参阅https://angular.io/api/router/RouteReuseStrategy.

更新1

现在,https://github.com/angular/angular/pull/13124的新路由器已修复(Angular 2.3),可以提供自定义重用策略.

有关示例,另请参见https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx

原版的

https://github.com/angular/angular/issues/9811

这是一个众所周知的问题.
目前,无法使路由器在仅参数路由更改上重新创建组件.

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐