我正在尝试从Angular的URL中读取一个变量。
我的路线上有这个
const routes: Routes = [
{ path: ':page', component: BlogComponent}
];
,这在我的博客组件构造函数中。
this.route.paramMap.subscribe(params => {
const page = params.params.page;
cacheService
.getAllPostIds()
.subscribe(postIds => this.loadPage(cacheService, postIds, page)
);
});
这在有参数的情况下有效,即www.url.com/1
返回page = 1。
如果网址后没有任何内容(仅www.url.com
),则从不触发路由订阅。这是订阅url变量和更改的正确方法吗?如果不是,应该怎么做;如果是的话,即使只有空白的/
答案 0 :(得分:0)
用2条路线解决了它。
const routes: Routes = [
{ path: '', component: BlogComponent, pathMatch: 'full' },
{ path: ':page', component: BlogComponent, pathMatch: 'full' },
];
和类似这样的构造函数:
constructor(private cacheService: CacheService, private route: ActivatedRoute) {
this.route.paramMap.subscribe(params => {
let page = params.params.page;
if (page == null){
page = 1;
}
console.log('page: ' + page);
cacheService
.getAllPostIds()
.subscribe(postIds => this.loadPage(cacheService, postIds, params.params.page)
);
});
}
在没有:page
的参数的情况下,原始路径没有被击中,然后对其进行了添加,以便在没有页面的情况下构造函数默认为1。
不确定这是否是最好的方法。
答案 1 :(得分:0)
我正在使用波纹管代码来反应性地获取路线参数。
constructor ( private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(
(params) => {
this.page = params[‘page’];
}
);
}