从Leaflet到Angular2的通用传递事件

时间:2017-01-18 07:23:25

标签: javascript angular events typescript leaflet

如何以通用方式将事件从Leaflet.js传递到Angular2。

我可以在组件上创建单独的EventEmitter组件,然后为这些组件添加特定的.on订阅。

e.g。为标记

@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)的方法,但是我无法找到任何这样的例子,或者如果这甚至与我想做的事情相关,那就可以解决?

0 个答案:

没有答案