我正在实施谷歌地图离子,但我面临一个问题,试图实现标记和infowindow。实施forloop点击addListener
正如你可以看到下面,我曾经尝试实施信息窗口到每个标记的,它按预期工作:
this.markerStart[0].addListener('click',()=>{
console.log('clicked')
this.popuparray[0].open(this.map,this.markerStart[0]);
})
this.markerStart[1].addListener('click',()=>{
console.log('clicked2222')
this.popuparray[1].open(this.map,this.markerStart[1]);
})
,但是当我试图修改它使用一个for循环,然后它不工作。
看起来完全一样,但我不知道为什么它不起作用。
//这里,this.markerStart.length是2 ...但它在for循环中不起作用。
console.log(this.markerStart);
console.log(this.markerStart.length);
console.log("this.markerStart")
for(var j=0; j<this.markerStart.length; j++){
this.markerStart[j].addListener('click',()=>{
console.log(j);
//only log 2 ...which is I don't understand. why log 2?
// j should be 0 and 1...because this.markerStart.length is 2
this.popuparray[j].open(this.map,this.markerStart[j])
})
}
我尝试这样做,以及:
for(var j=0; j<2; j++){
this.markerStart[j].addListener('click',()=>{
console.log(j);
})
}
所以我起初以为,当我点击第一个标记就应登录1,点击第二个标记时,应当记录2,但只有其日志记录2.
当点击被调用时,'j'是'this.markerStart.length' - 它是2? –