Angular 9:同一组件中Resolver与Service的复用及列表刷新问题
同一组件同时使用Resolver和依赖的Service是否存在问题?
完全没有问题,这是Angular依赖注入机制允许的常规场景:
- Resolver本质是路由预加载数据的中间层,本身就依赖Service获取数据;
- 组件依赖Service处理路由外的数据更新需求(比如表单提交后的即时刷新),是很常见的操作。
不过你的代码存在逻辑冗余(Resolver和组件里都写了调用getStudents()的逻辑),可以优化:把错误处理等逻辑统一封装到StudentsService中,比如:
// students-service.ts getStudents(): Observable<Student[]> { return this.httpClient.get<Student[]>(this.studentsUrl, this.baseService.httpOptions) .pipe( catchError(error => { console.error('获取学生列表失败:', error); return empty(); }) ); }
这样Resolver和组件的fetchStudents()都只需要调用this.studentsService.getStudents(),不用重复写错误处理,代码更简洁易维护。
内容的提问来源于stack exchange,提问作者dcfg
相关产品推荐
相关产品推荐

