我正在创建一个细分为不同应用程序的项目。例如,我想使用身份验证应用程序。
首先,让我们定义一下我的意思是一次性全局模块。作为一个最小的例子,这里有几个列表。
FlexLayoutModuleCustomUIModule这些模块必须在项目中声明一次。这里是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不能识别FlexLayoutModule和CustomUIModulemodules.However这可以解决,如果你把这些模块在输入的选项AuthenticationModule。
但是疯了的人,每当我创建另一个应用程序并做同样的事情时,我都不想这样做,因为这些模块是全局类型并且必须声明一次。任何人都可以有任何解决方案如何构建我的应用程序?非常感谢。
更具体地说,我得到了this error:
Error: Template parse errors:'mat-[some-material-component]'is not a known element.
Run Code Online (Sandbox Code Playgroud)
根据指南: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都可以访问导出的成员。
| 归档时间: |
|
| 查看次数: |
2509 次 |
| 最近记录: |