我的问题更多是以最佳方式解决问题。我有三种服务,即UrlService
,PreferencesService
和LabelsService
,这些服务依赖于分层方式。 UrlService
由所有配置文件网址和REST相关网址组成。其中一个preferencesUrl
用于使用PreferencesService
从数据库加载应用程序首选项。从首选项中获取语言,并使用LabelsService
加载相应标签JSON文件。
因此,每次我需要一些标签时,我都需要通过UrlService
- > PreferencesService
- > LabelsService
并且必须在使用标签的每个组件中编写类似这样的方法。
getUrls(): void {
this.urlService.getUrls()
.then(urls => {
this.urls = urls;
})
.catch(error => console.log(error));
}
getPreferences(): void {
this.preferencesService.getPreferences(this.urls['preferences'])
.then(preferences => {
this.preferences = < Preferences > preferences;
})
.catch(error => console.log(error.json() || error));
console.log(this.labels);
}
getLabels(): void {
this.labelService.getLabels(this.preferences.language)
.then(response => {
this.labels = response;
})
.catch(response => console.log(response));
console.log(this.labels);
}
我觉得在移动的方式上有些严重错误。我试图将它们结合起来,却找不到办法。请指导我简单地实现这一目标。