一旦捕获了传单标记上的click事件并转到关联的函数,我将在当前上下文中松开它。
标记创建代码:
const marker = L.marker([lon,lat],c).addEventListener(“ click”,this.onClickRainFall).addTo(map);
并且相关功能为:
private onClickRainFall(e){
var sourceUrl2 = "a.b.c.d/" + e.sourceTarget.options.properties.abc;
this.getData(sourceUrl2);
}
这里,当我尝试访问this.getData时,在运行时出现错误,提示“错误TypeError:this.getData不是函数”
getData的函数定义是:
public getData(sourceUrl){
console.log('I am called');
this.dataService.getData(sourceUrl).subscribe(data => {
this.myData = JSON.parse(data);
console.log(this.myData);
});
}
[请让我知道如何解决并正确获得此参考。
在触发this
之前将eventListener
分配给另一个变量,然后使用新变量代替this
。
示例:
let that = this;
const marker = L.marker([lon, lat], c).addEventListener("click", function() {
var sourceUrl2 = "a.b.c.d/" + e.sourceTarget.options.properties.abc; that.getData(sourceUrl2);
}).addTo(map);