出现“NullInjectorError - 未为HighContrastModeDetector提供提供者”的错误通常是因为在 Angular 8 中缺少某个服务的提供者。下面是一些可能的解决方法:
import { HighContrastModeDetector } from '@angular/cdk/a11y';
@NgModule({
providers: [
HighContrastModeDetector
]
})
export class AppModule { }
如果已经在根模块中正确提供了服务,还需要检查是否在某个组件或服务中手动创建了 HighContrastModeDetector 的实例。如果是这样,应该删除这些手动创建的实例,而是依赖注入方式使用该服务。
如果是通过 npm 或 yarn 安装的依赖库,可以尝试重新安装所有依赖项。有时候依赖项之间的版本不兼容会导致此类错误。
如果使用了 lazy loading 模块,需要确保在每个懒加载模块中都导入并提供了 HighContrastModeDetector 服务。例如:
import { HighContrastModeDetector } from '@angular/cdk/a11y';
@NgModule({
providers: [
HighContrastModeDetector
]
})
export class LazyModule { }
请注意,具体的解决方法可能因项目的结构和依赖项而有所不同。根据实际情况,需要检查和调整相关的模块和服务。