【发布时间】:2017-05-14 15:32:04
【问题描述】:
我有以下路线层次结构:
const appRoutes:Routes = [
{
path: 'article',
component: ArticleComponent,
children: [
{
path: '',
component: ArticleListComponent
},
{
path: ':articleId',
component: ArticleDetailComponent,
children: [
{
path: '',
component: PageListComponent
},
{
path: ':pageId',
component: PageComponent
}]
}]
},
{path: '**', component: DefaultComponent},
];
当我点击Article 链接时,页面被导航到:
“https://run.plnkr.co/article;listData=foo”
然后我看到了这个:
现在,当我点击 Article 2 时,页面导航到
“https://run.plnkr.co/article;listData=foo/2;detailData=bar”
然后我看到了这个:
现在,当我点击Page 33 链接时,页面导航到:
“https://run.plnkr.co/article;listData=foo/2;detailData=bar/33;detailData=kro”
然后我看到了这个:
好的
如你所见,在最里面的组件(单页组件),我设置了一些代码来查看 current 参数:
Page component! {{params | json}}
填充在:
export class PageComponent {
constructor(private activatedRoute_:ActivatedRoute) {
activatedRoute_.params
.subscribe(params => {
this.params=params;
});
}
问题:
目前params的值——只有{ "pageId": "33", "detailData": "kro" }属于最终路由。
但是我怎样才能获得以前的路线值?
我知道我可以读取查询字符串,但我发现这是一种非常规的方式。
最里面的url是:
“https://run.plnkr.co/article;listData=foo/2;detailData=bar/33;detailData=kro”
所以基本上我在问如何从 prev 路由中提取所有参数。
(我的意思是 articleId , listData , detailsData (第一个) 的值是什么?
【问题讨论】:
标签: javascript angular angular-routing