“ router-outlet”不是已知元素-角形

时间:2018-06-26 13:05:27

标签: angular

当我启动角度应用程序时,出现以下错误,

Error: Template parse errors:
'router-outlet' is not a known element
.....
ng:///LayoutModule/LayoutComponent.html

app.module.ts

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    ...
    AppRoutesModule,
    LayoutModule,
    ...
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app-routes.module.ts

@NgModule({
  imports: [
    RouterModule.forRoot(routes)
  ],
  exports: [
    RouterModule
  ],
  declarations: []
})
export class AppRoutesModule{ }

layout.module.ts

@NgModule({
  imports: [],
  declarations: [LayoutComponent, HeaderComponent]
})
export class LayoutModule { }

我没有故意在RouterModule中导入LayoutModule,因为AppRoutesModule已经导出了它,它应该在LayoutModule中可用。

有什么不起作用的原因吗?

3 个答案:

答案 0 :(得分:2)

npm install --save @angular/material@6.2.1 @angular/cdk@6.2.1 ng add @angular/material@6.2.1 LayoutComponent的一部分,因此,将LayoutModule导入RouterModule中。因此,角度将LayoutModule识别为LayoutModule的一部分。

OR

通过将RouterModule导入AppRoutesModule

,使其成为LayoutModule的一部分。

'export'关键字允许导出类,而'import'关键字实际上导入任何已经导出的类。

答案 1 :(得分:0)

我认为您应该将RouterModule导入到您的主模块中。因为即使从另一个模块导出它,主模块也看不到它。

您的主模块:

applicationContext.getBean(componentClass)

在这种情况下,它将在全局范围内可见。

答案 2 :(得分:0)

您忘记将AppRoutesModule导入LayoutModule中。更新后的LayoutModule如下:

layout.module.ts

@NgModule({
  imports: [AppRoutesModule],
  declarations: [LayoutComponent, HeaderComponent]
})
export class LayoutModule { }