带有角度材料延迟加载问题的 InjectionToken mat-select-scroll-strategy 错误

ama*_*ine 6 lazy-loading angular-material angular

我的 angular 9 应用程序中有两个模块,只有一个模块使用 angular 材料。所以我的 app.module.ts 不加载它,我使用延迟加载但是当我运行应用程序时它显示一个错误

NullInjectorError: R3InjectorError(t)[InjectionToken mat-select-scroll-strategy -> InjectionToken mat-select-scroll-strategy -> InjectionToken mat-select-scroll-strategy -> InjectionToken mat-select-scroll-strategy]: NullInjectorError: No InjectionToken mat-select-scroll-strategy 的提供者!

请有人帮忙。

Ben*_*ing 7

对我来说消除错误的是在 中包含MatDialogModule和,它不是延迟加载的:MatMenuModuleAppModule

import { MatDialogModule } from '@angular/material/dialog';
import { MatMenuModule } from '@angular/material/menu';
Run Code Online (Sandbox Code Playgroud)

然后终于又mat-menu工作了!

为什么这有效?

我的猜测是,某些@angular/material组件对这两个特定模块有一些隐式依赖关系。希望他们将来能解决这个问题,这样你就不需要这个了......


N.F*_*.F. 6

我也面临着同样的情况。解决我问题的是即使您在子模块中需要它也可以导入MatAutocompleteModule它app.module.ts。

应用程序模块.ts

import {MatAutocompleteModule} from '@angular/material/autocomplete';


imports: [
  MatAutocompleteModule,
]
Run Code Online (Sandbox Code Playgroud)