繁体   English   中英

守卫中不提供路线参数

[英]Route params not available in guards

为什么后卫无法提供id

@Injectable()
export class ProjectDetailsGuard implements CanActivate {

    constructor(private activatedRoute: ActivatedRoute) { }

    canActivate() {
        const id = this.activatedRoute.snapshot.params['id'];

        console.log(id); // <-- undefined
    }

}

在组件内部实现时,相同的代码可以完美地工作。

仅在激活路由后, ActivatedRoute才能提供参数。 如果需要在激活之前获取params ,例如在canActivate方法中,请尝试使用ActivatedRouteSnapshot

canActivate(activatedRoute: ActivatedRouteSnapshot) {
    const id = activatedRoute.params['id'];

    console.log(id); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM