Angular 2中的多个参数

时间:2016-11-14 08:28:43

标签: angular

我正在尝试设置浏览器来浏览树。 每次选择休假时,都可以选择其子女。

由于我想制作通用,我只想指定一条路线。

不幸的是,这不起作用...... 这工作

RouterModule.forRoot( [
{ path: '', redirectTo: '/browser', pathMatch: 'full' },
{
    path: 'browser', children: [
    {
        path: '',
        component: BrowserComponent
    },
    {
        path: '**',
        component: BrowserComponent
    }
]
},

])

但后来我无法阅读参数。这会打印一个emtpy对象

this.route.params.forEach((params: Params) => {
   console.log(params);
});

我认为它应该是这样的:

{ path: '**/:id', component: BrowserComponent }

但这也行不通..:/ 谁能告诉我我做错了什么?提前谢谢。

PS:在rails中,我会这样做:

get 'browser/*id',

1 个答案:

答案 0 :(得分:1)

这是一个掠夺者:http://plnkr.co/edit/kWSOa8i6095e0a5pBlgq?p=preview

为了让params更改routeconfig,如下所示:

RouterModule.forRoot( [
{ path: '', redirectTo: '/browser', pathMatch: 'full' },
{
    path: 'browser', children: [
    {
        path: ':id',
        component: BrowserComponent
    },
    {
        path: '**',
        component: AnotherComponent
    }
]
},

这样,当用户进入url browser / 1时,你可以在params中看到1。我还建议你更改通配符路由的组件(**),因为我假设你将在BrowserComponent中使用一个参数,如果你的用户没有提供参数,它应该转到错误页面。