如何从父组件获取RouteParams?
App.ts:
@Component({
...
})
@RouteConfig([
{path: '/', component: HomeComponent, as: 'Home'},
{path: '/:username/...', component: ParentComponent, as: 'Parent'}
])
export class HomeComponent {
...
}
Run Code Online (Sandbox Code Playgroud)
然后,在中ParentComponent,我可以轻松获取用户名参数并设置子路由.
Parent.ts:
@Component({
...
})
@RouteConfig([
{ path: '/child-1', component: ChildOneComponent, as: 'ChildOne' },
{ path: '/child-2', component: ChildTwoComponent, as: 'ChildTwo' }
])
export class ParentComponent {
public username: string;
constructor(
public params: RouteParams
) {
this.username = params.get('username');
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是,如何在这些子组件中获得相同的"用户名"参数?做与上面相同的技巧,不会这样做.因为这些参数是在ProfileComponent中定义的还是什么?
@Component({
...
})
export class ChildOneComponent {
public …Run Code Online (Sandbox Code Playgroud) 我在使用Angular2路线时遇到了麻烦.我有几个级别的嵌套.这是我的设置:我为未经身份验证的用户提供了最高级别的路由.登录后,他们就在/my路线下.在那个级别上,他们有一个仪表板,可以将它们带到/my/projects/关卡.路由下projects需要id.设置细节如下.这是最高级别AppComponent:
@RouteConfig([
{path: '/home', name:'Home', component: HomeComponent, useAsDefault: true},
{path: '/login', name: 'Login', component: LoginComponent},
{path: '/signup', name: 'SignUp', component:SignUpComponent},
{path: '/my/...', name: 'MyApp', component: MyAppComponent}
])
export class AppComponent {
constructor(private router: Router) {
}
Run Code Online (Sandbox Code Playgroud)
经过身份验证后,用户将转到MyAppComponent,其设置如下:
@RouteConfig([
{path:'/dashboard', name: 'MyDashboard', component: DashboardComponent, useAsDefault: true},
{path: '/projects/...', name: 'MyProjects', component: ProjectRootComponent},
])
export class MyAppComponent {
constructor(private router: Router) {
}
}
Run Code Online (Sandbox Code Playgroud)
DashboardComponent:
export class DashboardComponent {
public projects: Array<Project>;
public loaded: …Run Code Online (Sandbox Code Playgroud)