- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个奇怪的错误。通常(我做了我的谷歌搜索),在这种错误的情况下,Angular 在方括号中指定正是模块/服务/提供商/等导致了问题。但是在这里,它只显示选项
。
我尝试将 HttpClientModule, HttpModule, Options
添加到 providers/imports - 没有成功。
尝试遵循此调试指南 Debugging Unknown provider in minified angular javascript但它也让我一事无成(调用堆栈上没有 invoke
,只是调用与 Zone
相关联)
我的 app.components.ts
看起来像这样:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `<router-outlet></router-outlet>`,
})
export class AppComponent {
constructor() {}
}
Mozilla 控制台回溯:
Error: [object Object]
Stack trace:
resolvePromise@webpack-internal:///../../../../zone.js/dist/zone.js:783:31
resolvePromise@webpack-internal:///../../../../zone.js/dist/zone.js:754:17
scheduleResolveOrReject/<@webpack-internal:///../../../../zone.js/dist/zone.js:831:17
ZoneDelegate.prototype.invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:424:17
onInvokeTask@webpack-internal:///../../../core/esm5/core.js:4952:24
ZoneDelegate.prototype.invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:423:17
Zone.prototype.runTask@webpack-internal:///../../../../zone.js/dist/zone.js:191:28
drainMicroTaskQueue@webpack-internal:///../../../../zone.js/dist/zone.js:595:25
ZoneTask.invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:502:21
invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:1370:9
globalZoneAwareCallback@webpack-internal:///../../../../zone.js/dist/zone.js:1388:17
Mozilla 控制台详细回溯(当我点击下拉按钮时):
Error
columnNumber: 31
fileName: "http://localhost:4100/polyfills.bundle.js line 733 > eval"
lineNumber: 783
message: "Uncaught (in promise): Error: StaticInjectorError(AppModule)[options]: \n StaticInjectorError(Platform: core)[options]: \n NullInjectorError: No provider for options!\n_NullInjector.prototype.get@webpack-internal:///../../../core/esm5/core.js:1218:19\nresolveToken@webpack-internal:///../../../core/esm5/core.js:1516:17\ntryResolveToken@webpack-internal:///../../../core/esm5/core.js:1458:16\nStaticInjector.prototype.get@webpack-internal:///../../../core/esm5/core.js:1326:20\nresolveToken@webpack-internal:///../../../core/esm5/core.js:1516:17\ntryResolveToken@webpack-internal:///../../../core/esm5/core.js:1458:16\nStaticInjector.prototype.get@webpack-internal:///../../../core/esm5/core.js:1326:20\nresolveNgModuleDep@webpack-internal:///../../../core/esm5/core.js:11065:12\n_createClass@webpack-internal:///../../../core/esm5/core.js:11102:29\n_createProviderInstance$1@webpack-internal:///../../../core/esm5/core.js:11076:26\nresolveNgModuleDep@webpack-internal:///../../../core/esm5/core.js:11061:17\n_…"
promise: Object { __zone_symbol__state: 0, __zone_symbol__value: Error }
rejection: Error: StaticInjectorError(AppModule)[options]:
StaticInjectorError(Platform: core)[options]:
NullInjectorError: No provider for options!
Stack trace:
[object Object]
stack: "resolvePromise@webpack-internal:///../../../../zone.js/dist/zone.js:783:31\nresolvePromise@webpack-internal:///../../../../zone.js/dist/zone.js:754:17\nscheduleResolveOrReject/<@webpack-internal:///../../../../zone.js/dist/zone.js:831:17\nZoneDelegate.prototype.invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:424:17\nonInvokeTask@webpack-internal:///../../../core/esm5/core.js:4952:24\nZoneDelegate.prototype.invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:423:17\nZone.prototype.runTask@webpack-internal:///../../../../zone.js/dist/zone.js:191:28\ndrainMicroTaskQueue@webpack-internal:///../../../../zone.js/dist/zone.js:595:25\nZoneTask.invokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:502:21\ninvokeTask@webpack-internal:///../../../../zone.js/dist/zone.js:1370:9\nglobalZoneAwareCallback@webpack-internal:///../../../../zone.js/dist/zone.js:1388:17\n"
task: Object { runCount: 0, _state: "notScheduled", type: "microTask", … }
zone: Object { _properties: {…}, _parent: {…}, _name: "angular", … }
__proto__: Object { … }
Google chrome 控制台回溯:
core.js:1448 ERROR Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[options]:
StaticInjectorError(Platform: core)[options]:
NullInjectorError: No provider for options!
Error: StaticInjectorError(AppModule)[options]:
StaticInjectorError(Platform: core)[options]:
NullInjectorError: No provider for options!
at _NullInjector.get (core.js:1002)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveNgModuleDep (core.js:10849)
at _createClass (core.js:10886)
at _createProviderInstance$1 (core.js:10860)
at _NullInjector.get (core.js:1002)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveToken (core.js:1300)
at tryResolveToken (core.js:1242)
at StaticInjector.get (core.js:1110)
at resolveNgModuleDep (core.js:10849)
at _createClass (core.js:10886)
at _createProviderInstance$1 (core.js:10860)
at resolvePromise (zone.js:783)
at resolvePromise (zone.js:754)
at eval (zone.js:831)
at ZoneDelegate.invokeTask (zone.js:424)
at Object.onInvokeTask (core.js:4736)
at ZoneDelegate.invokeTask (zone.js:423)
at Zone.runTask (zone.js:191)
at drainMicroTaskQueue (zone.js:595)
at ZoneTask.invokeTask [as invoke] (zone.js:502)
at invokeTask (zone.js:1370)
defaultErrorLogger @ core.js:1448
当我进入 Debug模式时,调用错误的最后一个函数是:
function defaultErrorLogger(console) {
var values = [];
for (var _i = 1; _i < arguments.length; _i++) {
values[_i - 1] = arguments[_i];
}
console.error.apply(console, values);
}
最佳答案
这是对我有用的(Angular 7):
如果没有,请先在 app.module.ts 中导入 HttpClientModule:
import { HttpClientModule } from '@angular/common/http';
...
imports: [
HttpClientModule
],
然后改变你的服务
@Injectable()
export class FooService {
到
@Injectable({
providedIn: 'root'
})
export class FooService {
希望对您有所帮助。
编辑:
providedIn
Determines which injectors will provide the injectable, by either associating it with an @NgModule or other InjectorType, or by specifying that this injectable should be provided in one of the following injectors:
'root' : The application-level injector in most apps.
'platform' : A special singleton platform injector shared by all applications on the page.
'any' : Provides a unique instance in every module (including lazy modules) that injects the token.
小心 platform
仅在 Angular 9 ( https://blog.angular.io/version-9-of-angular-now-available-project-ivy-has-arrived-23c97b63cfa3 )
在这里阅读更多关于注入(inject)剂的信息:https://angular.io/api/core/Injectable
关于angular - 未捕获( promise ): Error: StaticInjectorError(AppModule)[options],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49776562/
我仅在 Kitkat 设备上遇到此崩溃。我的 logcat 在下面。在 getViewModel 处崩溃 Fatal Exception: java.lang.NoClassDefFoundError
我对 Angular 和 .net Core 还很陌生。我正在编写代码来执行 CRUD 操作。我的一个获取项目组件中有以下代码。 import { Component } from '@angular
我对 Angular 和 .net Core 还很陌生。我正在编写代码来执行 CRUD 操作。我的一个获取项目组件中有以下代码。 import { Component } from '@angular
我已经实现了一个拦截器来添加我可以制作 seucred api 的授权 header 。当我在任何应用程序模块中注入(inject)此服务时出现错误//"无法实例化循环依赖!HttpClient ("
I have added this code into my app.module.ts providers: [ AppConfigService, {
我已经创建了一个类似于 Angular 文档中的突出显示指令,但是我无法在 appmodule 中导入的其他模块中使用它。以下是我的 appmodule.ts 文件: import { Browser
我正在阅读有关模块的 Angular 文档,寻找不鼓励在 AppModule 中导入 SharedModule 的行。 我没有找到任何关于此的内容,只是一个 GitHub 问题,指出最好不要导入它。然
我正在尝试将 AngularDart 应用程序放在一起,并且我会在文档中来回切换。 在 AngularDart 官方网站架构页面中,它谈到了最重要的 AppModule AngularDart Arc
我正在开发 Angular 6 项目。自最近几天以来,我陷入了以下问题。请指导。 我的程序基于惰性路由并且也有动态路由。以下代码是我的app-routing.module.ts: const rou
我一直在使用在线教程并创建了一个“还行”的 SPA 数据输入应用程序。 我可以很好地连接到我的 WEB API,但只构建了一个模型,我的 AppModule 已经有几行了。 我正在考虑并使用当前的方法
Angular 2+ 通过以下方式注册提供者: // @NgModule decorator with its metadata @NgModule({ declarations: [...],
我不明白为什么当我有了新的提供商时,我一次又一次地遇到这个错误。当我有任何其他提供商(如地理定位等)时,我遇到此错误: Error: Uncaught Error: Invalid provider
我才刚刚开始学习如何使用 Angular 2 和 Ionic 3.20.0,但现在面临挑战。我正尝试在我的主页中显示产品图片,但该应用程序抛出此错误 ERROR Error: Uncaught (in
如何从延迟加载的模块访问 AppModule 导入? 我的 Angular 10 应用导入 AngularMaterial 和 NXTranslate 模块 进入 AppModule。 NxTrans
在我的应用程序(独立)中,当我需要从 Guice 获取一些对象实例时,我通常这样做: injector = Guice.createInjector(new AppModule()); instanc
我是 Angular 的新手,我试图在具有以下目录结构的 Angular2 应用程序中分离我的模块。 我在 AppModule 中声明了我的模块和其他组件,但是我在浏览器控制台中收到一个错误 Unex
我最近更新了 2.4.1 版本。 "@angular/common": "~2.4.1", "@angular/compiler": "~2.4.1", "@angular/compiler-cli"
我正在尝试在我的 Angular 6 应用程序中实现延迟加载,我所有的 http 调用都是在 FeatureModule(延迟加载)中进行的,但我仍然必须添加 HttpClientModule 在我的
我已经搜索了很多有关此错误的信息,但没有任何有用的信息,这种错误通常有角度地告诉您缺少提供程序的对象是什么,但是这次它给出了 StaticInjectorError(AppModule)[[objec
我有以下代码 @NgModule({ declarations: [ ... ], imports: [ RoutingModule, SharedModule,
我是一名优秀的程序员,十分优秀!