从URL路径读取变量

问题描述 投票:0回答:2

我正在尝试从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,我怎么能让它工作

angular angular6 angular2-routing
2个回答
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) ); }); } 没有参数时,原始路径没有被击中,然后添加,以便如果没有页面,构造函数默认为1。

不知道这是不是最好的方法。


0
投票

我正在使用波纹管代码来反应性地获取路由参数。

:page
© www.soinside.com 2019 - 2024. All rights reserved.