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);
});
我有一个列出一系列数据的组件,需要分页,因为数据列表可能很长。 我已经使用路由实现了一个简单的分页。例如:
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);
});