【发布时间】:2019-04-30 10:44:09
【问题描述】:
我是 Angular 的新手,在首次加载时将参数从 url 传递到查看时遇到问题。
在我的网址中,我有参数页面:
.../catalog?page=3
在组件中我有下一个代码:
export class CatalogListComponent implements OnInit {
page;
constructor(private route: ActivatedRoute){
}
ngOnInit(){
this.route.queryParams.subscribe(params => {
this.page = +params['page'] || 1;
});
}
setPage(page: number) {
this.router.navigate(['catalog'], { queryParams: {...this.queryParams, page } });
}
}
鉴于我使用ngb-pagination:
<ngb-pagination class="pagination"
[collectionSize]="items.total"
[rotate]="true"
[(page)]="page"
[maxSize]="5"
[pageSize]="20"
(pageChange)="setPage(page)"
>
</ngb-pagination>
当我在浏览器中打开/刷新链接时 .../catalog?page=3 ngb-pagination 总是显示页面 1 而不是 3,但接下来导航工作正常([url中的页面编号和分页相同)。
我做错了什么?
【问题讨论】:
-
尝试
this.page = +params['page']将“3”作为字符串转换为数字。 -
试着把它放在构造函数中。
-
嗨,亚历克斯 K!
onInit()应该是ngOnInit() -
感谢解答,还是不行,我更新了代码示例。
-
你能记录
page和items的值吗?
标签: angular typescript url-parameters angular7