在Angular 2中管理或组合相互关联的服务

时间:2017-03-05 12:51:15

标签: angular angular-services

我的问题更多是以最佳方式解决问题。我有三种服务,即UrlServicePreferencesServiceLabelsService,这些服务依赖于分层方式。 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);
}

我觉得在移动的方式上有些严重错误。我试图将它们结合起来,却找不到办法。请指导我简单地实现这一目标。

0 个答案:

没有答案