角度URL更改不会导致重新创建组件

时间:2018-06-28 09:03:10

标签: angular router paging

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

http://localhost:50367/searchflights/2

请给我第二页数据。 现在如果我在浏览器中手动键入url并按Enter ,则会重新创建组件,并强制创建该组件,因此,数据已加载到构造函数中。 但是,如果我已经在该组件的页面上,并且通过路由器链接更改了该URL,则仅该URL发生更改,并且不会重新创建该组件,因此不会重新加载数据。

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

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

如果单击分页链接之一,则路由会相应更改,但不会重新加载数据。 如何强制重新创建组件或应挂接到哪个事件以重新加载数据

1 个答案:

答案 0 :(得分:1)

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

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