参数更改时的Angular 2重新加载路线

新手上路,请多包涵

我目前正在编写我的第一个 Angular 2 应用程序。我有一个具有以下简单模板的 OverviewComponent:

 <div class="row">
  <div class="col-lg-8">
    <router-outlet></router-outlet>
  </div>
  <div class="col-lg-4">
    <app-list></app-list>
  </div>
</div>

当访问 url / 我的路由器将我重定向到 /overview 然后在路由器插座中加载地图。 <app-list> 有一个可点击项目列表,触发 <app-detail> 显示而不是应用程序组件。因此,我在 url 中传递引用 json 文件的 id,如下所示: /details/:id (在我的路线中)。

以上所有工作都很好。如果我现在单击其中一个列表项,则会显示详细信息,但是当我选择另一个列表元素时,视图不会更改为新的详细信息。 URL 确实发生了变化,但内容没有重新加载。如何实现 DetailComponent 的重新初始化?

原文由 hGen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 715
2 个回答

根据第一个最终版本,此问题已得到解决。

只要注意参数变化时正确重置组件的状态

this.route.params.subscribe(params => {
    this.param = params['yourParam'];
    this.initialiseState(); // reset and set based on new parameter this time
});

原文由 gpanagopoulos 发布,翻译遵循 CC BY-SA 3.0 许可协议

在您的 constructor()

 this.router.routeReuseStrategy.shouldReuseRoute = () => false;

原文由 Abdus Salam Azad 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进