Mapboxgl单击Angular2中的侦听器函数

时间:2017-03-25 00:53:05

标签: angular typescript mapbox-gl

我在Angular2中有一个组件,其中我有mapboxgl map click侦听器和在触发click后调用的函数。我想这是缺乏我的经验或者是mapboxgl特定的问题,但我无法弄明白如何在该函数之外获取变量。 this.something不起作用。我想这是一种范围问题......这是问题的根本原因(控制台打印出undefined)...

public map: Map;
public test: string = 'test'; 

initialize() {
    this.map.on('click', clickListener);
}

clickListener() {
    console.log(this.test); // undefined
}

2 个答案:

答案 0 :(得分:0)

我认为您需要将事件交给函数。 以下是我处理同一问题的方法:

this.map.on('click', (event: any) => {
    const features = this.map.queryRenderedFeatures(event.point, {layers: ['markers']})
    if (features.length) {
        console.log(features)
    }
})

答案 1 :(得分:0)

尝试类似:

public map: Map;
public test: string = 'test'; 

initialize() {
    this.map.on('click', clickListener.bind(this));
}

clickListener() {
    console.log(this.test); // undefined
}