这可以标记为基于意见。但我正在寻找标准/最佳实践。我正在构建一个 Angular 2 应用程序,在将数据显示在模板中之前,我必须先操作 API 中的数据。例如,如果我的服务如下所示:
getData(id: number): Observable<Data> {
return this.http
.get(this.url + '/' + id)
.map((res) => {
return res.json().data;
});
}
prepareData(data) {
// manipulate and return the data
}
在我的组件上,我可以这样调用服务:
getData(id: number): void {
this.dataService.getData(id)
.subscribe((data: Data) => {
this.showData = this.dataService.prepareData(data)
};
}
但这是标准方法吗?还是应该将 prepareData
函数包含在组件中?
换句话说,与组件相比,服务应该是重的还是应该是轻的,只作为获取数据的接口(interface)?
最佳答案
简单、通用的转换每个人都需要(例如res => res.json().data
)应该在服务中。
依赖于表示逻辑的特定于 View 的转换(例如 data => data.user.firstName + ' ' + data.user.lastName
)应该放在您的组件中。
服务应该能够提供数据而无需知道将呈现什么。组件应该能够在不知道数据来自何处的情况下呈现数据。
关于javascript - Angular 2 中的服务应该包含数据操作逻辑还是组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188008/