我有一个角度的feed服务,调用一个返回EntryDTO列表的REST端点.以下是该服务的外观:
@Injectable({providedIn: 'root'})
constructor(private http: HttpClient) {}
export class FeedService() {
getPublicFeedEntries: Observable<EntryDTO[]> () {
return this.http.get('/rest/publicFeedEntries/).map((response: Response) => response.json()).catch((err: any) => Observable.throw(error.josn().error || 'error');
}
}
那么我可以有一个订阅这个observable的feed组件:
export class FeedComponent() {
private feedEntries: EntryDTO[];
constructor(private feedService: FeedService) { feedEntries = new Array(); }
ngOnInit() {
this.feedService.getPublicFeedEntries.subscribe(entries => {
this.feedEntries = entries;
}, err => {console.log(err) })
}
}
这被认为是返回服务中的observable并在组件中订阅或是否有其他最佳实践的最佳实践?
最佳答案 您所遵循的方法非常好,但要将其提升到新的水平,您可以在服务中引入模型,这将使您的组件中的响应易于阅读/使用.
查看写在ngx-model上的这篇文章,它提供了在应用程序中遵循模型驱动方法的方法.