RxJS:使用主题更新ui

时间:2017-01-03 17:11:21

标签: angular rxjs

我有一项服务,我在其中创建了一个负责通知收到的资源的主题:

@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()

每次将呼叫提交到服务器时,如何让组件中的资源更新?

感谢您的帮助。

0 个答案:

没有答案