![](/img/trans.png)
[英]ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[FormBuilder]
[英]Angular 8 : Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)
我有一个 angular 8 应用程序,出现以下错误:
core.js:4002 ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[ScreenComponent -> MetadataUtil]:
StaticInjectorError(Platform: core)[ScreenComponent -> MetadataUtil]:
NullInjectorError: No provider for MetadataUtil!
NullInjectorError: StaticInjectorError(AppModule)[ScreenComponent -> MetadataUtil]:
StaticInjectorError(Platform: core)[ScreenComponent -> MetadataUtil]:
NullInjectorError: No provider for MetadataUtil!
at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:725)
at resolveToken (core.js:11918)
at tryResolveToken (core.js:11862)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:11764)
at resolveToken (core.js:11918)
at tryResolveToken (core.js:11862)
at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:11764)
at resolveNgModuleDep (core.js:20234)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:20905)
at injectInjectorOnly (core.js:628)
at resolvePromise (zone.js:852)
at resolvePromise (zone.js:809)
at zone.js:913
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:26247)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
at drainMicroTaskQueue (zone.js:601)
at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (zone.js:502)
at invokeTask (zone.js:1693)
以下是代码:
元数据实用程序
export class MetadataUtil {
constructor(
private http: HttpClient,
private httpCache: HttpCacheService
) { }
postData() {
//...
}
}
ScreenComponent.ts
import { MetadataUtil } from './MetadataUtil.ts';
@Component({
selector: 'comp1',
templateUrl: `./comp1.component.html`,
styleUrls: ['./comp1.component.scss']
, encapsulation: ViewEncapsulation.None
})
@Injectable({
providedIn: 'root'
})
@NgModule({
imports: [SharedModule, AngularBootstrapToastsModule]
})
export class ScreenComponent implements OnInit {
constructor(
private metadata: MetadataUtil
) { }
getData(){
this.metadata.postData();
}
}
因此 MetadataUtil.ts 文件中的 postData 方法之前是静态的,并且 ScreenComponent 将其用作导入。 我将其更改为非静态并更改了 ScreenComponent 中的引用,并且。 这个错误开始出现。 我在网上看到过类似的帖子,人们为此提出了解决方案,但我一直无法理解这个错误是关于什么以及为什么会抛出这个错误。 有人可以解释一下这个错误是什么吗? 谢谢
根据最新版本,您应该使用HttpClientModule
而不是HttpModule
像这样导入
import { HttpClientModule } from '@angular/common/http';
@NgModule({
declarations: [ ],
imports: [
......
HttpClientModule
]
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.