我在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
}
答案 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
}