我在应用程序中有全局设置,存储在本地存储中。
我需要编写在加载应用程序后从本地存储加载设置时启动的服务。
在哪做?
我可以编写服务并在每个组件中调用它,但这不方便。
答案 0 :(得分:2)
您可以从服务构造函数中的本地存储加载设置。首次加载服务时,将加载设置。但请确保该服务在应用程序中是单例。您的服务的使用在您的应用程序中共享。
答案 1 :(得分:2)
您可以创建resolve并在应用程序加载时调用服务一次
参见示例how to use
您也可以创建getter和setter方法,以便轻松访问每个组件
例如
// import
export class AppConfigService{
public token: string;
Constructor(private http: Http){
}
get token(): string{
return this.token;
}
getAppConfig(): Promise<any> {
return this.http.get('apiBaseUrl')
.toPromise()
.then(resp => {
this.token = res.token;
}).catch(function (err: any): any {
Observable.throw(err);
});
}
}
解决方案2
将此功能放入app模块
export function loadAppConfig(appService: AppConfigService): Function {
return () => appService.getAppConfig();
}
将此添加到提供者
中providers: [
AppConfigService,
{
provide: APP_INITIALIZER,
useFactory: loadAppConfig,
deps: [AppConfigService],
multi: true
},
]