Angular 停止子导航角路由器

Angular 停止子导航角路由器,angular,Angular,我有一个路由器,它有子路由器。父路由器有一个组件。在该组件中,我检查一个条件,如果失败,我重定向。问题是子路由器组件Ngonit代码被执行。有没有办法防止这种情况发生 const routes:routes=[ { 路径:'parent/:id', 组件:父组件, 儿童:[ { 路径:'子', 组件:ChildComponent } ] } ]; 类ParentComponent实现OnInit{ 只读数字_REGEX=/^\+?\d+$/; 恩戈尼尼特(){ this.route.param

我有一个路由器,它有子路由器。父路由器有一个组件。在该组件中,我检查一个条件,如果失败,我重定向。问题是子路由器组件Ngonit代码被执行。有没有办法防止这种情况发生

const routes:routes=[
{
路径:'parent/:id',
组件:父组件,
儿童:[
{
路径:'子',
组件:ChildComponent
}
]
}
];
类ParentComponent实现OnInit{
只读数字_REGEX=/^\+?\d+$/;
恩戈尼尼特(){
this.route.params.subscribe(params=>{
if(参数id){
如果(!this.NUMBER_REGEX.test(params.id)){
this.router.navigateByUrl(“/未找到”);
}
}   
});
}
}
类ChildComponent实现OnInit{
恩戈尼尼特(){
log('不希望它在/parent/string/child上工作,但仍然工作');
}

}
是,如果满足(或不满足)某些条件,请使用RouteGuard防止路由

路由器守卫正是为了这个目的


如果页面不应加载,则不应加载父组件。我的意思是,您应该在实际加载页面(或导航到页面)之前检查您的条件。