“ this”在处理角传单单击事件时迷路了

问题描述 投票:0回答:1

一旦捕获了传单标记上的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);
});

}

[请让我知道如何解决并正确获得此参考。

angular rest leaflet
1个回答
0
投票

在触发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);
© www.soinside.com 2019 - 2024. All rights reserved.