我在Angular 4中创建了我的第一个应用程序,并且我将AppRoutingModule导入了app.module.ts,据我所知,通过将模块导入到这个app.module中它变为&#34;可见&#34 34;到应用程序的其余部分。根据这个原则,我没有在下面的模块中声明(retaguarda.module),但组件retaguarda.component在其html中有<router-outlet> </ router-outlet>
标签,显示的错误要求导入AppRoutingModule Inside rearModule,但是,如上所述,在app.module中声明,后面不应该看到。模块也是?
直接在retaguardamodule中声明错误消失,但是导航是有错误的,所以我认为问题出现在多个地方。你能帮我解决这个问题吗?
app.module.ts:
...
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
AppRoutingModule,
RetaguardaModule,
LoginModule
],
providers: [
LoginGuard,
LoginService,
Ambiente
],
bootstrap: [AppComponent]
})
export class AppModule { }
retaguarda.module.ts:
...
@NgModule({
imports: [
CommonModule,
NavbarModule,
SidenavModule,
CadastrosModule,
MovimentacoesModule,
AdministracaoModule,
RelatoriosModule,
ConfiguracoesModule,
DashboardModule
],
declarations: [
RetaguardaComponent
],
exports: [
RetaguardaComponent
]
})
export class RetaguardaModule { }
app.component.html:
<app-retaguarda></app-retaguarda>
retaguarda.component.html:
<header>
<app-navbar *ngIf="ambiente.usuarioLogado"></app-navbar>
<app-sidenav ></app-sidenav>
</header>
<div class="container">
<router-outlet></router-outlet>
</div>
答案 0 :(得分:2)
您需要在此使用.forRoot()
和.forChild()
。
从AppRoutingModule.forRoot()开始,只需一条路线就可以获得RetaguardaComponent
。接下来,让RetaguardaModule
使用.forChild()
表示法在您的模块中进行路由。
如果RetaguardaComponent
没有任何子路线而且本身没有路线(即它总是显示),那么请考虑将其放入CoreModule
并让AppComponent处理路由。
从此页面阅读更多内容,以便更好地掌握如何设置路由:
https://angular.io/docs/ts/latest/guide/router.html#!#why-routing-module