首页 > 解决方案 > Angular Routing - 是否有任何属性可以添加到路由配置中以连接到组件中?

问题描述

下面是我创建的示例路由配置。但是,在我的几个组件中,我想根据特定的路由在我的 HTML 中添加和删除类。是否可以添加任何其他“属性”(组件和 canActivate 所在的位置),我可以以某种方式连接到我的组件中?

例如“如果 URL.name = this”

{
    path: 'folders/:folderId/projects/:projectId/s',
    component: ProjectDetailComponent,
    canActivate: [AuthGuardService],
    children: [
        {
            path: 'edit',
            component: ProjectEditComponent,
            canActivate: [AuthGuardService],
            customName: EditPanel, // Something like this possible?
        },
    ],        
},

抱歉,如果这有点含糊。

标签: angularangular-routing

解决方案


我不确定这是否是最好的方法,但你可以data像这样传递一个你想要的属性:

{
    path: 'folders/:folderId/projects/:projectId/s',
    component: ProjectDetailComponent,
    canActivate: [AuthGuardService],
    children: [
        {
            path: 'edit',
            component: ProjectEditComponent,
            canActivate: [AuthGuardService],
            data: { type: 'editPanel' }
        },
    ],        
}, 

然后你可以在你的组件中得到这个:

export class ProjectEditComponent implements OnInit {
    constructor(private route: ActivatedRoute) {}

    ngOnInit() {
        if (this.route.snapshot.data.type === 'editPanel') {
            ...
        }
    }
}

推荐阅读