NullInjectorError:没有 MatSnackBar 的提供者

Shy*_*nde 1 angular-material angular

我正在尝试创建一个通用服务来显示 MatSnackBar。但不知何故它无法加载 MatSnackBar。

如果我直接在组件中注入 MatSnackBar ,它可以正常工作,但在服务类中注入时则不行。

在此输入图像描述

在上面的代码中,如果我们取消注释 24 到 28 行并注释 30 到 34 行,那么它将正常工作。

这是我创建的stackblitz。请打开控制台查看错误

Mat*_*ler 5

您的服务是在 root 中提供的,因此它的注入器是RootInjector.

因此您需要ManSnackBarRootInjector. 通过将其添加到您的独立组件中,您只需在NodeInjector(组件注入器)中提供。

为此,将其添加到以下提供者中boostrapApplication

importProvidersFrom([ /* other modules */, MatSnackBarModule])
Run Code Online (Sandbox Code Playgroud)