【发布时间】:2016-10-31 11:57:20
【问题描述】:
我正在开发一个 Angular2 应用程序,但我被困在路由配置中。我将路由和导航的官方文档闲置并适当地使用它们。它具有松弛的路由结构。
-Login Page
-Home Page
|-Achievement
|-Task
我使用 auth guard 来保护主页路由。在主页中,有一个标题和链接来浏览子组件。目前,如果我点击一个链接,它会加载带有子组件的整个主页,
也给出了这个错误
EXCEPTION: Uncaught (in promise): Error: Cannot find primary outlet to load 'AchievementComponent'
我检查了所有内容,它看起来正确,但我无法找出任何原因。
app-routing.module.ts
..
@NgModule({
imports:[
RouterModule.forRoot([
{ path: 'login', component: LoginComponent },
{ path: 'home', component: HomeComponent, canActivate [LoggedInGuard],
children:[
{ path: 'achievement', component:AchievementComponent },
{ path: 'task', component:TaskComponent },
{ path: '', redirectTo:'achievement', pathMatch:'full' }
]
},
{ path: '', redirectTo:'home', pathMatch:'full' },
])
],
exports:[
RouterModule
]
})
export class AppRoutingModule { }
app.module.ts
@NgModule({
imports: [
BrowserModule,
FormsModule,
HttpModule,
AppRoutingModule,
AngularFireModule.initializeApp(firebaseConfig,firebaseAuthConfig),
],
declarations: [
AppComponent,
LoginComponent,
HomeComponent,
AchievementComponent,
TaskComponent,
],
providers: [
UserService,
DataService,
LoggedInGuard,
StorageService
],
bootstrap: [AppComponent],
})
export class AppModule { }
app.component.html 文件仅包含 <router-outlet></router-outlet> 标记。
home.component.html
<div *ngIf="validUser">
.......
<nav>
<a routerLink="achivement" >Achivement</a>
<a routerLink="task" >Task</a>
</nav>
<router-outlet></router-outlet>
</div>
谁能给个解决办法
【问题讨论】:
-
更多关于这个错误的解释在这里:stackoverflow.com/a/38284135/6503379