如何导入其他模块组件可以识别的一次性全局模块

Roe*_*oel 3 angular

我正在创建一个细分为不同应用程序的项目。例如,我想使用身份验证应用程序。

首先,让我们定义一下我的意思是一次性全局模块。作为一个最小的例子,这里有几个列表。

  1. FlexLayoutModule
  2. CustomUIModule

这些模块必须在项目中声明一次。这里是AppModule

@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    // Dependencies
    BrowserModule,
    BrowserAnimationsModule,
    FlexLayoutModule,
    CustomUIModule,

    // Apps
    AuthenticationModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

现在让我向您展示AuthenticationModule. 我只有这个模块的登录组件。

@NgModule({
    declarations: [
        LoginComponent,
    ],
    exports: [
        LoginComponent
    ],
})
export class AuthenticationModule { }
Run Code Online (Sandbox Code Playgroud)

我的问题是这里LoginComponent不能识别FlexLayoutModuleCustomUIModulemodules.However这可以解决,如果你把这些模块在输入的选项AuthenticationModule

但是疯了的人,每当我创建另一个应用程序并做同样的事情时,我都不想这样做,因为这些模块是全局类型并且必须声明一次。任何人都可以有任何解决方案如何构建我的应用程序?非常感谢。

更具体地说,我得到了this error

Error: Template parse errors:'mat-[some-material-component]'is not a known element.
Run Code Online (Sandbox Code Playgroud)

Pra*_*ana 5

根据指南:https : //angular.io/guide/sharing-ngmodules

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { FlexLayoutModule} from './new-item.directive';
import { CustomUIModule } from './orders.pipe';

@NgModule({
 imports:      [  FlexLayoutModule,CustomUIModule, FormsModule, CommonModule  ],
 declarations: [ ],
 exports:      [  FlexLayoutModule,CustomUIModule, FormsModule, CommonModule   ]
})
export class SharedModule { }
Run Code Online (Sandbox Code Playgroud)

通过重新导出 FlexLayoutModule,CustomUIModule, FormsModule, CommonModule,任何其他导入 this 的模块SharedModule都可以访问导出的成员。