角度特征模块和访问子路径的参数

时间:2018-08-22 20:00:27

标签: angular parameters routing

我已经研究了一段时间,关于如何正确地(在功能模块中)正确设置子路径和参数。我不知道自己的路由做错了什么

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { AdministrationComponent } from './administration.component';
import { UsersComponent } from './users/users.component';
import { UserComponent } from './user/user.component';

const routes: Routes = [
    {
        path: '', component: AdministrationComponent,
        children: [
            { path: '', redirectTo: 'administration', pathMatch: 'full' },
            { path: 'users', component: UsersComponent },
            {
                path: 'user', component: UserComponent,
                children: [
                    { path: ':id', component: UserComponent }
                ]
            }
        ]
    }
];

@NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule]
})
export class AdministrationRoutingModule { }

所有路由都可以正常加载。但是,该参数始终是未定义的。

浏览到/ administration / user /?id = 2或/ administration / user / 2时

// UserComponent
ngOnInit() {
    this.route.params.subscribe(params => {
        this.id = params['id']; // undefined. params logs empty {}
    });
}

解决方案:

只要:id是'user'的子路由,我就无法访问该参数。

我确实得到了path: 'user/:id', component: UserComponent的帮助,但这是它自己的警告。

差异是how you access个子代,一个子代和父代参数。

// this.route.children
// this.route.firstChild.params
// this.route.parent.params

1 个答案:

答案 0 :(得分:-1)

该网址应不包含 (querystring) ? ,并且可以正常运行

/administration/user/2