gpt4 book ai didi

Angular2 - 如何初始化服务内的数据?

转载 作者:太空狗 更新时间:2023-10-29 18:30:49 25 4
gpt4 key购买 nike

我有两个服务。 login.service.tsenvironment-specific.service.ts

login.service.ts 中,我需要从传递几个链接的 environment-specific.service.ts 初始化一个 Json 对象。

用例是如何在没有 ngOnInit(){} 的情况下在 servcie 中工作,因为 ngOnInit() 不能在 servcie 中使用Angular2 生命周期 Hook 。

在这里你可以找到我必须在 login.service.ts 中初始化的部分——当然没有 ngOnInit() 方法:

...
import { EnvSpecific } from '../models/env-specific';
import { ActivatedRoute } from "@angular/router";

@Injectable()
export class LoginService {

link1: string;
link2: string;
link3: string;

constructor(private http: Http, private fbuilder:FormBuilder, private route: ActivatedRoute) { }

ngOnInit(){
this.route.data
.subscribe((data: { envSpecific: EnvSpecific }) => {
this.link1 = data.envSpecific.link1;
this.link2 = data.envSpecific.link2;
this.link3 = data.envSpecific.link3;
});
}
...
...
}

我想将链接传递到传递给不同 http.post API 调用的 URL。例如:

...
var obsRequest = this.http.post( this.link1, serializedForm, this.options )
...

错误很明显:link1 未定义

有什么建议或提示吗?

最佳答案

您可以先通过应用程序初始化来初始化您的服务,然后再使用服务。

这可以通过 APP_INITIALIZER 完成,参见:

https://devblog.dymel.pl/2017/10/17/angular-preload/

Angular: How to correctly implement APP_INITIALIZER

关于Angular2 - 如何初始化服务内的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616399/

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