gpt4 book ai didi

Angular 5 APP_INITIALIZER 导致循环依赖

转载 作者:太空狗 更新时间:2023-10-29 19:33:32 26 4
gpt4 key购买 nike

类似于Angular 5 APP_INITIALIZER gives Cyclic dependency error

我有一个使用 Angular 5 和 SSR 的应用程序,我刚刚从 Angular 4 升级了它,一切都很好。

现在,当我使用 APP_INITIALIZER 时,出现上述错误。我环顾四周,我能找到的最好的与需要注入(inject)路由器有关,但我不使用路由器!任何关于这方面的指导都会很棒,在此先感谢!

代码如下:

在我的提供商中,功能:-

  SettingsProvider,
{ provide: APP_INITIALIZER, useFactory: settingsProviderFactory, deps: [SettingsProvider], multi: true }

export function settingsProviderFactory(provider: SettingsProvider) {
return () => provider.load();
}

服务:

import { HttpClient } from "@angular/common/http";
import { Injectable } from "@angular/core";
import { Subject } from "rxjs";
import { ConfigSetting } from "../../models/config.model";


@Injectable()
export class SettingsProvider {

private settings: any = null;
private baseUrl: string;

public subject: Subject<any> = new Subject();

constructor(private http: HttpClient) {

}

load() {
return new Promise((resolve, reject) => {
this.http
.get('http://localhost:54601/api/configuration')
.subscribe(response => {
this.settings = response;
resolve(true);
console.log(response)
})
})
}

public getEventSetting(): boolean {
return true /*this.settings['events'];*/
}
public getReviewSetting(): boolean {
return true /*this.settings['reviews'];*/
}
public updateSettings(settings: ConfigSetting): void {
this.settings = settings;
this.subject.next();
}

}

编辑:好的,我可能是错的,但它看起来可能与 HttpClient 有关。我删除了它,它似乎工作...有点大声笑我可以向控制台发送消息。不过我需要http!我尝试添加超时并注入(inject)它,但这没有用。

最佳答案

是的,所以问题是 HttpClient。

我把它换成来自“@angular/http”的旧 {Http};在@NgModule 中导入模块并且它可以工作。

关于Angular 5 APP_INITIALIZER 导致循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com