gpt4 book ai didi

Angular 4 在 APP_INITIALIZER 中注入(inject)路由

转载 作者:太空狗 更新时间:2023-10-29 17:32:51 25 4
gpt4 key购买 nike

我正在尝试在我的 APP_INITIALIZER 中检索 url 中存在的数据

应用程序模块.ts

export function init(config: ConfigService, router: Router) {
return () => config.load(router);
}


providers : [
...
{
provide: APP_INITIALIZER,
useFactory: init,
deps: [ConfigService, Router],
multi: true
},
ConfigService
...
]

配置服务.ts

@Injectable()
export class ConfigService
load(router: Router): Promise<any> {
console.log('current url : ' + router.url);
return new Promise(((resolve, reject) => resolve()));
}
}

不幸的是我得到了

Cannot instantiate cyclic dependency! ApplicationRef ("[ERROR ->]"): in NgModule AppBrowserModule in ./AppBrowserModule@-1:-1

我也试过在构造函数中使用 Injector 但它也没有用。

我正在尝试做的事情是否可行?

最佳答案

config-service.ts 可以改写如下。

@Injectable()
export class ConfigService
constructor(private injector: Injector){}

load(): Promise<any> {
const router = this.injector.get(Router);
console.log('current url : ' + router.url);
return new Promise(((resolve, reject) => resolve()));
}
}

无需在 app.module.ts 中注入(inject) Router 作为依赖。

关于Angular 4 在 APP_INITIALIZER 中注入(inject)路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46832508/

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