Angular4 路由子重定向不起作用
Angular4 Routing Child redirect not working
我这样构建我的 angular4 路由:
{path: 'siteroot', component: SiteMessengerComponent},
{
path: '', component: FrameDefaultComponent,
children: [
{
path: 'user/:userId', component: SiteUserprofileComponent,
children: [
{
path: 'home', component: SiteUserprofileHomeComponent,
},
{
path: 'about', component: SiteUserprofileHomeComponent,
}
]
}
]
}
如您所见,我做了一个配置文件,它加载到 FramedefaultComponent 内部。在配置文件中,我想要一些子配置文件视图。默认视图需要加载 "home" 视图。
问题是我在 google 中找不到任何可以解释我尝试做的事情的内容。我希望当我使用 url: /user/24(24 在本例中是用户 ID)打开配置文件时,我希望他直接打开用户/:userId/home。但是无论我尝试什么,我都会遇到编译器错误。
我做错了什么?
这是网站-userprofile.component.ts
export class SiteUserprofileComponent implements OnInit {
users: Observable<User[]>;
userId: number;
constructor(private route: ActivatedRoute, private userListService: UserListService) {
this.users = this.userListService.users;
}
ngOnInit() {
this.route.params.subscribe((params) => this.userId = params.userId);
this.userListService.get([new Filter({
name: 'ids',
value: this.userId
}
)], true);
}
}
您可以在 user/:userId
children 中放置一个空路径。将空路径重定向到您的 home
路径
{
path: 'user/:userId',
children: [
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
{
path: 'home',
component: SiteUserprofileHomeComponent,
},
{
path: 'about',
component: SiteUserprofileHomeComponent,
}
]
}
我这样构建我的 angular4 路由:
{path: 'siteroot', component: SiteMessengerComponent},
{
path: '', component: FrameDefaultComponent,
children: [
{
path: 'user/:userId', component: SiteUserprofileComponent,
children: [
{
path: 'home', component: SiteUserprofileHomeComponent,
},
{
path: 'about', component: SiteUserprofileHomeComponent,
}
]
}
]
}
如您所见,我做了一个配置文件,它加载到 FramedefaultComponent 内部。在配置文件中,我想要一些子配置文件视图。默认视图需要加载 "home" 视图。
问题是我在 google 中找不到任何可以解释我尝试做的事情的内容。我希望当我使用 url: /user/24(24 在本例中是用户 ID)打开配置文件时,我希望他直接打开用户/:userId/home。但是无论我尝试什么,我都会遇到编译器错误。
我做错了什么?
这是网站-userprofile.component.ts
export class SiteUserprofileComponent implements OnInit {
users: Observable<User[]>;
userId: number;
constructor(private route: ActivatedRoute, private userListService: UserListService) {
this.users = this.userListService.users;
}
ngOnInit() {
this.route.params.subscribe((params) => this.userId = params.userId);
this.userListService.get([new Filter({
name: 'ids',
value: this.userId
}
)], true);
}
}
您可以在 user/:userId
children 中放置一个空路径。将空路径重定向到您的 home
路径
{
path: 'user/:userId',
children: [
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
{
path: 'home',
component: SiteUserprofileHomeComponent,
},
{
path: 'about',
component: SiteUserprofileHomeComponent,
}
]
}