如何解决Angular 9 HttpClient-TypeError:url.indexOf不是函数
最近,我一直在转换Angular 9项目,以便在引导过程中从JSON文件而不是环境文件动态接收其配置。
进行更改后,在运行测试时出现“ TypeError:url.indexOf不是函数”错误。从错误堆栈中,问题似乎是在Angulars的HttpClient模块中发生的。我不确定为什么这会成为问题,因为我的配置更改不会修改任何根Angular模块。
此外,我不确定如何修复它。我已经搜索了Google和StackOverflow,结果通常表明这是过时的jQuery的问题-具体来说,某些功能已被弃用,不再可用。但是我不认为这是我的问题吗?同样,我的配置更改与jQuery没有任何关系,我也没有更改与jQuery相关的任何内容。
这是Stacktrace
TypeError: url.indexOf is not a function
at new HttpRequest (../../packages/common/http/src/request.ts:221:26)
at HttpClient.Object.<anonymous>.HttpClient.request (../../packages/common/http/src/client.ts:482:13)
at HttpClient.Object.<anonymous>.HttpClient.get (../../packages/common/http/src/client.ts:1109:17)
at IService.getIs (src/app/core/services/i.service.ts:49:28)
at DialogEditComponent.initialiseDropdowns (src/app/modules/components/dialog-edit/dialog-edit.component.ts:122:46)
at DialogEditComponent.ngOnInit (src/app/modules/components/dialog-edit/dialog-edit.component.ts:83:10)
at checkAndUpdateDirectiveInline (../packages/core/src/view/provider.ts:217:15)
at checkAndUpdateNodeInline (../packages/core/src/view/view.ts:440:14)
at checkAndUpdateNode (../packages/core/src/view/view.ts:400:12)
at debugCheckAndUpdateNode (../packages/core/src/view/services.ts:433:44)
at debugCheckDirectivesFn (../packages/core/src/view/services.ts:394:7)
at Object.eval [as updateDirectives] (ng:/DynamicTestModule/DialogEditComponent_Host.ngfactory.js:9:5)
at Object.debugUpdateDirectives [as updateDirectives] (../packages/core/src/view/services.ts:388:19)
at checkAndUpdateView (../packages/core/src/view/view.ts:370:12)
at callWithDebugContext (../packages/core/src/view/services.ts:638:23)
at Object.debugCheckAndUpdateView [as checkAndUpdateView] (../packages/core/src/view/services.ts:349:10)
at ViewRef_.Object.<anonymous>.ViewRef_.detectChanges (../packages/core/src/view/refs.ts:284:16)
at ComponentFixture.Object.<anonymous>.ComponentFixture._tick (../../packages/core/testing/src/component_fixture.ts:113:28)
at ../../packages/core/testing/src/component_fixture.ts:127:14
at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:386:30)
at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (node_modules/zone.js/dist/proxy.js:117:43)
at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:385:36)
at Object.onInvoke (../packages/core/src/zone/ng_zone.ts:308:29)
at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:385:36)
at Zone.Object.<anonymous>.Zone.run (node_modules/zone.js/dist/zone.js:143:47)
at NgZone.Object.<anonymous>.NgZone.run (../packages/core/src/zone/ng_zone.ts:180:50)
at ComponentFixture.Object.<anonymous>.ComponentFixture.detectChanges (../../packages/core/testing/src/component_fixture.ts:126:19)
at src/app/modules/components/dialog-edit/dialog-edit.component.spec.ts:62:13
at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:386:30)
at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (node_modules/zone.js/dist/proxy.js:117:43)
at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invoke (node_modules/zone.js/dist/zone.js:385:36)
at Zone.Object.<anonymous>.Zone.run (node_modules/zone.js/dist/zone.js:143:47)
at Object.<anonymous> (node_modules/jest-preset-angular/zone-patch/index.js:52:27)
这是似乎是对HttpClient模块进行调用的函数。
public getIs(a: number,b: number,c = false) {
let params = new HttpParams().set('a',a === 0 ? '' : a.toString());
params = params.append('b',b === 0 ? '' : b.toString());
return this.httpClient.get<Instance[]>(Config.settings?.url.baseApiUrl + Config.settings?.url.api.instance,{params})
.pipe(
map(items => {
return c ? items.filter(item => item.isActive === true) : items;
})
);
}
任何指导或建议将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。