0

我像这样构建我的 angular4 路由:

{path: 'siteroot', component: SiteMessengerComponent},
{
    path: '', component: FrameDefaultComponent,
    children: [
        {
            path: 'user/:userId', component: SiteUserprofileComponent,
            children: [
                {
                    path: 'home', component: SiteUserprofileHomeComponent,
                },
                {
                    path: 'about', component: SiteUserprofileHomeComponent,
                }
            ]
        }
    ]
}

如您所见,我做了一个配置文件,该配置文件加载在 FramedefaultComponent 内部。在配置文件中,我想要一些子配置文件视图。默认视图需要加载“主页”视图。

问题是我在谷歌找不到任何解释我尝试做的事情的东西。我希望当我使用 url 打开配置文件时:/user/24(在这种情况下,24 是用户 ID)然后我希望他直接打开 user/:userId/home。但无论我尝试什么,都会遇到编译器错误。

我做错了什么?

这是 site-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);
    }

}
4

1 回答 1

3

你可以在你的user/:userId孩子里面放一条空路。让空路径重定向到您的home路径

{
    path: 'user/:userId',
    children: [
        {
            path: '',
            redirectTo: 'home',
            pathMatch: 'full'
        },
        {
            path: 'home', 
            component: SiteUserprofileHomeComponent,
        },
        {
            path: 'about',
            component: SiteUserprofileHomeComponent,
        }
    ]
}
于 2017-08-09T17:16:03.830 回答