在Angular 2中管理或组合互连服务

在Angular 2中管理或组合互连服务,angular,angular-services,Angular,Angular Services,我的问题更多的是以最好的方式解决问题。我有三个服务,即,UrlService,首选服务和标签服务,它们以分层方式相互依赖。UrlService由所有配置文件URL和REST相关URL组成。其中一个首选项surl用于使用首选项服务从数据库加载应用程序首选项。从首选项中获取语言,并使用LabelsService加载相应的标签JSON文件 因此,每次我需要一些标签时,我都需要通过UrlService->首选项服务->LabelsService,并且必须在使用标签的每个组件中编写类似的方法 getURL

我的问题更多的是以最好的方式解决问题。我有三个服务,即,
UrlService
首选服务
标签服务
,它们以分层方式相互依赖。
UrlService
由所有配置文件URL和REST相关URL组成。其中一个
首选项surl
用于使用
首选项服务
从数据库加载应用程序首选项。从首选项中获取语言,并使用
LabelsService
加载相应的标签JSON文件

因此,每次我需要一些标签时,我都需要通过
UrlService
->
首选项服务
->
LabelsService
,并且必须在使用标签的每个组件中编写类似的方法

getURL():void{
this.urlService.getUrls()
。然后(URL=>{
this.url=url;
})
.catch(错误=>console.log(错误));
}
getPreferences():void{
this.preferencesService.getPreferences(this.url['preferences'])
。然后(首选项=>{
this.preferences=preferences;
})
.catch(error=>console.log(error.json()| | error));
console.log(this.labels);
}
getLabels():void{
this.labelService.getLabels(this.preferences.language)
。然后(响应=>{
this.labels=响应;
})
.catch(response=>console.log(response));
console.log(this.labels);
}

我觉得我的行动方式有点不对劲。我试图把它们结合起来,但找不到办法。请引导我以简单的方式实现这一点

我看不到你在使用可观察的东西。为什么会这样?你说他们以一种无政府的方式相互依赖。但事实并非如此。为什么标签服务不能从首选项服务获取语言,而首选项服务可以从url服务获取url?@Aravind对于我提到的这些服务,不会有任何重复请求,比如在搜索某个内容时。数据是固定的,只会加载一次。因此,我没有使用可观测数据,因为我读到,当没有连续的事件流时,承诺就足够了。它错了吗???@JBNizet因为不同语言有不同的标签文件,比如英语的labels_en_IN.json。根据语言的不同,它会得到相应的url。这取决于你的期望。首先告诉我为什么你有三个端点和三个服务?我看不到你使用的是可观测的。为什么会这样?你说他们以一种无政府的方式相互依赖。但事实并非如此。为什么标签服务不能从首选项服务获取语言,而首选项服务可以从url服务获取url?@Aravind对于我提到的这些服务,不会有任何重复请求,比如在搜索某个内容时。数据是固定的,只会加载一次。因此,我没有使用可观测数据,因为我读到,当没有连续的事件流时,承诺就足够了。它错了吗???@JBNizet因为不同语言有不同的标签文件,比如英语的labels_en_IN.json。根据语言的不同,它会得到相应的url。这取决于你的期望。首先告诉我为什么你们有三个终点和三个服务?