【Angular】[Debugging] NullInjectorError: No provider for {Class}!
问题现象:控制台报错(NullInjectorError)

一句话总结:你想要用某个类A的功能,并将它在constructor实例化了,但是Angular在injector列表中没有找到这个A类,所以不知道怎么提供这个类。
解决方式:
在类A头上添加Injectable装饰符,并配置好providedIn等相关参数。或者在模块的ngModule装饰符的providers数组中添加A类,如果是类A来自第三方,则是在模块的ngModule装饰符的imports数组中添加该类所在的模块。
方式一:Injectable

方式二:providers

方式三:imports,仅针对三方引入

解释:
任何类想要被引用(在constructor中实例化),都需要在Angular的injector列表注册,注册方式之一就是使用Injectable装饰符,也是官方推荐方式;另一种就是在模块的providers中注明。两种方式都可以配置作用域,使类在不同的作用域生效。
injector列表:



配置不同作用域:


浙公网安备 33010602011771号