在 中app.component.html,我设置了一个条件来决定使用哪种模板:
<div *ngIf="_appService.titleName !== 'Login'">
<router-outlet></router-outlet>
</div>
<div ngIf="_appService.titleName === 'Login'">
<login></login>
</div>
我试图在用户登录后将他重定向到应用程序的主页。为此,我使用以下命令:
this._appService.titleName === 'Main page';
this._router.navigate(['/']);
通过使用这个我得到这个错误:
Cannot find primary outlet to load 'MainComponent'
这让我感到不安,因为我在注销的另一种方式(从主页重定向到登录页面)做了完全相同的事情,并且一切正常。
我读了一些类似的答案,但到目前为止没有一个对我有帮助,因为我不想router-outlet在我的页面中添加标签,login.component.html因为主页不是登录页面的子组件。
我认为我的问题是我应该使用两个router-outlets 而不是登录选择器,但我无法让它正常工作。
我的app.routing.ts:
const appRoutes: Routes = [
{
path:'login',
component: LoginComponent
},
{
path: 'main',
component: MainComponent,
canActivate: [AuthGuard]
},
{
path:'',
redirectTo:'/main',
pathMatch:'full'
},
{
path: '**',
redirectTo: ''
}
];
export const appRoutingProviders: any[] = [];
export const routing = RouterModule.forRoot(appRoutes);