Angular2 -当两个事件发射器发出时订阅

Angular2 - Subscribe when two event emmitters emit

本文关键字:发射器 事件 两个 Angular2      更新时间:2023-09-26

我的组件有以下代码:

ngOnInit() {
    this.route.params.forEach((params: Params) => {
        this.codvis = params['id'];
    });
    this.objects.selectedObject.subscribe(obj => this.selectedEventObjet(obj));
    this.sections.selectecSection.subscribe(section => this.selectedEventSection(section));
}
function selectedEventObjet(o) {
    this.selectedObj = o;
}
function selectedEventSection(s) {
    this.selectedSection = s;
}

所以,现在我想只在设置了selectedObjselectedSection时调用服务,但这不仅仅是简单的:

ngOnInit() {
    this.route.params.forEach((params: Params) => {
        this.codvis = params['id'];
    });
    this.objects.selectedObject.subscribe(obj => this.selectedEventObjet(obj));
    this.sections.selectecSection.subscribe(section => this.selectedEventSection(section));
    this.myService.getItems(this.selectedObj, this.selectedSection)
        .subscribe(
            items => this.items = items;
        );
}

但是我无法获得items

我如何确保selectedObjselectedSection被设置为获得items ?

Observable.combineLatest(this.objects.selectedObject, this.sections.selectecSection)
  .subscribe(([obj, section]) =>  this.myService.getItems(obj, section))

您甚至不需要本地处理程序来保存该值,只需直接获取序列。