【发布时间】:2021-04-12 09:28:29
【问题描述】:
distance-measurment-parameters.component 是 site-map.component 中的一个子项。 distance-measurment-parameters 中的 hideWindowOverlay() 方法在窗口关闭时调用,并发出如下所示的事件。日志 显示 hideWindowOverlay() 中的语句,表示该事件已发出。
在组件site-map.component中,我监听或订阅事件'evtEmitterOnDistanceMeasurementWindowClosed'如下,如下代码所示
(evtEmitterOnDistanceMeasurementWindowClosed)=onDistanceMeasurementWindowClosedEvtReceived($event)/>
问题是,方法 onDistanceMeasurementWindowClosedEvtReceived() 从未被调用,因此没有收到事件。
请告诉我如何正确订阅“evtEmitterOnDistanceMeasurementWindowClosed”事件以及如何调用“onDistanceMeasurementWindowClosedEvtReceived”方法
在 site-map.html 中:
<clr-toggle-wrapper *ngIf="showMeasureDistance">
<input type="checkbox" clrCheckbox (change)="toggleDistanceMeasurementOverlay()" [(checked)]="showMeasureDistanceOverlay"
(evtEmitterOnDistanceMeasurementWindowClosed)=onDistanceMeasurementWindowClosedEvtReceived($event)/>
<label >
{{ "SITE.MEASURE_DISTANCE" | translate }}
<button class="btn btn-sm btn-icon" (click)="showInformation('SERVICE_MEASURE_DISTANCE')">
<clr-icon shape="help-info" class="is-solid"></clr-icon>
</button>
</label>
</clr-toggle-wrapper>
distance-measurment-parameters.component:
//declaration of the event emitter
@Output("evtEmitterOnDistanceMeasurementWindowClosed")
evtEmitterOnDistanceMeasurementWindowClosed: EventEmitter<boolean> = new
EventEmitter<boolean>();
hideWindowOverlay() {
//throw new Error('Method not implemented.');
this.showWindow = false;
this.evtEmitterOnDistanceMeasurementWindowClosed.emit(true);
console.log("hideWindowOverlay: emits event this.evtEmitterOnDistanceMeasurementWindowClosed.emit(true)");//log here are displayed
}
在 site-map.component 中:
onDistanceMeasurementWindowClosedEvtReceived(event: boolean){
this.toggleDistanceMeasurementOverlay();
console.log("onDistanceMeasurementWindowClosedEvtReceived: ");//log are not displayed
}
【问题讨论】:
-
你声明
evtEmitterOnDistanceMeasurementWindowClosed=new EventEmitter<bool>();了吗? - 看到你需要等于 new EventEmitter- -
这里不应该有双引号吗?
(evtEmitterOnDistanceMeasurementWindowClosed)=onDistanceMeasurementWindowClosedEvtReceived($event)/>还是可以编译?
标签: javascript angular typescript angular-event-emitter