我的应用程序中有一个共享模块,我将共享文件夹中的所有组件捆绑在一个模块中。
我现在需要的是如何从该模块导入类?
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ModuleWithProviders } from '@angular/core';
import { MaterialModule } from '@angular/material';
import { AgGridModule } from 'ag-grid-ng2/main';
import { TreeModule } from 'angular2-tree-component';
import {
GenericTabsComponent, DateNavigatorComponent,
ErrorMessage, FavoriteListComponent, GenericContentComponent, GenericFormComponent,
GenericListComponent, GenericLookupComponent, GenericPopupComponent, GlobalActionsComponent, LoadingComponent,
UnitListComponent, UnitSubunitFavoriteItemComponent, UnitSubunitFieldComponent, UnitSubunitItemComponent,
WeekstartComponent, AutoCompleteComponent, ChipsInputComponent, FilterboxComponent, GridCellActionComponent, GenericTabHeaderComponent,
ActionGridComponent, ComboBoxComponent, TextareaComponent
} from './index';
@NgModule({
id: "@app/components",
imports: [BrowserModule, FormsModule, ReactiveFormsModule, MaterialModule, AgGridModule, TreeModule],
exports: [FormsModule, ReactiveFormsModule, GenericTabsComponent, DateNavigatorComponent,
ErrorMessage, FavoriteListComponent, GenericContentComponent, GenericFormComponent,
GenericListComponent, GenericLookupComponent, GenericPopupComponent, GlobalActionsComponent, LoadingComponent,
UnitListComponent, UnitSubunitFavoriteItemComponent, UnitSubunitFieldComponent, UnitSubunitItemComponent,
WeekstartComponent, AutoCompleteComponent, ChipsInputComponent, FilterboxComponent, GridCellActionComponent, GenericTabHeaderComponent,
ActionGridComponent, ComboBoxComponent, TextareaComponent],
declarations: [GenericTabsComponent, DateNavigatorComponent,
ErrorMessage, FavoriteListComponent, GenericContentComponent, GenericFormComponent,
GenericListComponent, GenericLookupComponent, GenericPopupComponent, GlobalActionsComponent, LoadingComponent,
UnitListComponent, UnitSubunitFavoriteItemComponent, UnitSubunitFieldComponent, UnitSubunitItemComponent,
WeekstartComponent, AutoCompleteComponent, ChipsInputComponent, FilterboxComponent, GridCellActionComponent, GenericTabHeaderComponent,
ActionGridComponent, ComboBoxComponent, TextareaComponent],
})
export class ComponentsModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: ComponentsModule,
providers: []
};
}
}
这是共享文件夹,应用程序结构如下所示。
app->shared->components.module // 这里是所有组件
app->main.page // 一个页面的模块
app->users.page // 另一个页面的模块
app->main.app.module //根模块
现在在main.page
我需要导入一个组件类,例如GenericListComponent
,从共享模块中创建一个ViewChild
并指定类型。我从哪里导入课程GenericListComponent
?从文件位置,或者导入看起来像这样?
import {GenericListComponent} from "@app/components"
此外,如果我有 2 个带有加载子项的页面模块,并且它们使用来自共享的组件。我应该将我的共享模块放在主应用程序组件中的什么位置,还是在每个模块中将其指定为导入?