網站搜尋

javascript - 從 Leaflet 將通用事件傳遞到 Angular2


我如何以通用方式將事件從 Leaflet.js 傳入 Angular2。

我可以在元件上建立個別的 EventEmitter 元件,然後對這些元件新增特定的 .on 訂閱。

例如:標記

@Output() click = new EventEmitter();
@Output() dblclick = new EventEmitter();
@Output() mousedown = new EventEmitter();
@Output() mouseover = new EventEmitter();
@Output() mouseout = new EventEmitter();
@Output() contextmenu = new EventEmitter();

接著

this.marker.on({
    'click': event => this.click.emit(event),
    'dblclick': event => this.dblclick.emit(event),
    'mousedown': event => this.mousedown.emit(event),
    'mouseover': event => this.mouseover.emit(event),
    'mouseout': event => this.mouseout.emit(event),
    'contextmenu': event => this.contextmenu.emit(event),
});

這讓我可以訂閱並將特定事件從 Marker 傳遞到父組件。但這似乎非常特定,依賴於我選擇每個特定的事件類型,並擁有相關的 @Output 來傳播這些事件。

有沒有一種更通用的方法可以將 Leaflet 的事件系統連接到 Angular2 的事件系統?我可以看到 Leaflet 有方法可以 addEventParent(<Evented> obj),但我還沒有找到任何這方面的範例,也不確定這是否與我想做的事情相關或適用?