Angular url 更改不会导致重新创建组件

Angular url change does not cause the component to be recreated

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

http://localhost:50367/searchflights/2

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

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

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

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

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

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