【发布时间】:2021-02-27 06:42:24
【问题描述】:
我很难理解 Angular 中的 NgModel 是如何工作的,我将举一个发生在我身上的问题的例子。
我有 3 个模块 AppModule(根模块)、SharedModule 和 AssignmentModule。在我的 AssignmentModule 中,我导入了一些由 ngx-bootstrap 制作的模态组件,代码如下:
const routes: Routes = [
{
path: '',
component: AssignmentManagerComponent,
children: [
{
path: '',
component: TaskTemplateComponent,
},
{
path: ':template',
component: TaskManagerComponent,
},
],
},
];
@NgModule({
declarations: [
AssignmentManagerComponent,
TaskTemplateComponent,
TaskManagerComponent,
ModalTaskTemplateComponent,
ModalTaskSectionComponent,
ModalTaskComponent,
],
imports: [
CommonModule,
SharedModule,
// GeneralModule,
RouterModule.forChild(routes),
],
exports: [RouterModule, AssignmentManagerComponent],
})
export class AssignmentsModule {}
在我的 SharedModule 中,我有这个:
@NgModule({
declarations: [
],
imports: [
ConfirmationPopoverModule.forRoot({
confirmButtonType: 'danger',
}),
],
exports: [
MatTableModule,
MatPaginatorModule,
MatSortModule,
MatInputModule,
MatFormFieldModule,
MatCheckboxModule,
MatDialogModule,
MatDividerModule,
MatRadioModule,
MatSelectModule,
MatTabsModule,
MatExpansionModule,
MatSlideToggleModule,
MatDatepickerModule,
MatNativeDateModule,
MatButtonModule,
// MatMomentDateModule,
// MomentDateAdapter,
ConfirmationPopoverModule,
FormsModule,
ReactiveFormsModule,
TextMaskModule,
DragDropModule,
ScrollingModule,
FontAwesomeModule,
],
})
export class SharedModule { }
我试图在我的 ngx-bootstrap 模态中从 Material Angular 中放置一个简单的 mat-select。我面临的问题是我收到此错误:
没有 InjectionToken mat-select-scroll-strategy 的提供者!
我知道这个解决方案只是从这个模块导入:MatSelectModule,但我把它放在 SharedModule 中,它在我的 AssignmentModule 中导出。如果我把这个模块放在我的 AppModule 上,这个错误就会停止,但这不是一个优雅的解决方案。我做错了什么?
【问题讨论】:
标签: angular