我有一项服务,我在其中创建了一个负责通知收到的资源的主题:
@Injectable()
export class ResourceService {
resourcesSubject: BehaviorSubject<IResource[]>;
constructor(private requestHandler: RequestHandlerService) {
this.resourcesSubject = new BehaviorSubject<IResource[]>([]);
}
getResources() {
return this.http.get('/resources')
.subscribe((resources: IResource[]) => {
this.resourcesSubject.next(resources);
});
}
addResource() {
// add resource
this.getResources()
}
}
我在UI组件中订阅此主题,期望在主题next
时收到资源列表中的更改。
它在组件中的样子:
this.resourceService.resourcesSubject.subscribe(resources => {
console.log(resources);
this.resources = resources;
});
}
但subscribe
只发生一次,而不是每次触发addResource()
。
每次将呼叫提交到服务器时,如何让组件中的资源更新?
感谢您的帮助。