Angular2路由器不';不要更换部件

Angular2路由器不';不要更换部件,angular,routes,Angular,Routes,当我使用router.navigate['some-route']时,新路由的组件将添加到旧路由的组件之上,而不是替换它: 当前路径是登录页面: 登录后,我将通过执行以下操作导航到主页面: this.router.navigate(['/form-builder']); ,但它的组件只是添加到登录组件的顶部,而没有替换它: 根组件模板: <router-outlet></router-outlet> 我做错了什么?当您看到在当前组件之上添加组件时,通常意味着抛出了

当我使用router.navigate['some-route']时,新路由的组件将添加到旧路由的组件之上,而不是替换它:

当前路径是登录页面:

登录后,我将通过执行以下操作导航到主页面:

this.router.navigate(['/form-builder']);
,但它的组件只是添加到登录组件的顶部,而没有替换它:

根组件模板:

<router-outlet></router-outlet>

我做错了什么?

当您看到在当前组件之上添加组件时,通常意味着抛出了一些错误。检查您的开发控制台,并告诉我们您在导航时是否遇到一些错误。如果有,每次您在其他地方导航时,它都应该将组件堆叠在彼此的顶部


不,我不知道为什么,或者是Angular的意思是这样的,但确实如此。从经验来看。

当您看到在当前组件之上添加组件时,通常意味着抛出了一些错误。检查您的开发控制台,并告诉我们您在导航时是否遇到一些错误。如果有,每次您在其他地方导航时,它都应该将组件堆叠在彼此的顶部


不,我不知道为什么,或者是Angular的意思是这样的,但确实如此。仅凭经验。

请包括根组件的模板以及路由配置。您的登录组件可能设置为
/
路径,但没有
{exact:true}
,使其与所有路径匹配?@JunKang,您说得对!这是正确的答案(尽管我不确定如何将其标记为正确答案)。非常感谢。请包括根组件的模板以及路由配置。您的登录组件可能设置为
/
路径,但没有
{exact:true}
,使其与所有路径匹配?@JunKang,您说得对!这是正确的答案(尽管我不确定如何将其标记为正确答案)。非常感谢。
const routes: Routes = [
    { path: '', redirectTo: 'form-builder', pathMatch: 'full' },
    { path: 'form-builder', component: FormEditorComponent, canActivate: [AuthGuard] },
    { path: 'login', component: LoginComponent },
    { path: 'signup', component: SignupComponent },
];