【问题标题】:Angular url change does not cause the component to be recreatedAngular url 更改不会导致组件被重新创建
【发布时间】:2018-06-28 09:03:09
【问题描述】:

我有一个组件列出了一系列数据,需要分页,因为数据列表可能很长。 我已经使用路由实现了一个简单的分页。例如:

http://localhost:50367/searchflights/2

会给我第二页数据。 现在如果我在浏览器中手动输入 url 并按下回车键,组件将强制重新创建,因此数据会加载到构造函数中。 但是如果我已经在组件的页面上并通过路由器链接更改 url,则只有 url 更改并且不会重新创建组件,因此不会重新加载数据。

我的分页包含在页面底部的一个简单链接列表:

<div>
        <a style="display:inline-block" *ngFor="let page of pages" [routerLink]="['/searchflights/',page]">
            {{page}}
        </a>
    </div>

如果我单击其中一个寻呼链接,路线会相应更改,但不会重新加载数据。 如何强制重新创建组件或我应该挂钩哪个事件以重新加载数据

【问题讨论】:

  • 您是否尝试过在[routerLink] 中使用{{page}}
  • 我尝试点击路由器链接,这只会导致路由发生变化,但不会重新创建组件。我需要按刷新按钮才能看到更改。

标签: angular router paging


【解决方案1】:

您可以订阅路由参数,而不是在构造函数中加载数据。

this.route.params.subscribe(params => {
  this.loadUser(params.id);
});

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2021-01-26
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    相关资源
    最近更新 更多