2017-03-25 6 views
0

私はmapboxglマップのクリックリスナとクリックが発生した後に呼び出される関数を持つAngular2のコンポーネントを持っています。私はそれが私の経験の欠如か、それはmapboxglの特定の問題だと思いますが、私はその機能の外で変数を取り上げる方法を理解できません。 this.somethingは機能しません。私はそれがスコープの問題のいくつかの種類だと思います...ここでの問題(コンソールプリントアウトundefined)の裸の基本的な...私はあなたが機能にイベントを渡す必要があると思うMapboxglのクリックリスナー機能Angular2

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

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

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

答えて

0

です。ここ は、私は同じ問題に近づい方法です:

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

ような何か試してみてください:

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

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

clickListener() { 
    console.log(this.test); // undefined 
} 
関連する問題