我正在尝试从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)
);
});
如果有参数,这是有效的,是qazxsw poi返回page = 1。
如果url之后没有任何内容(只是www.url.com/1
),那么这绝不会触发路由订阅。这是订阅url变量和更改的正确方法,如果不是我该怎么做,如果是的话,即使只有一个空白的网址www.url.com
,我怎么能让它工作
用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)
);
});
}
没有参数时,原始路径没有被击中,然后添加,以便如果没有页面,构造函数默认为1。
不知道这是不是最好的方法。
我正在使用波纹管代码来反应性地获取路由参数。
:page