我正在實施谷歌地圖離子,但我面臨一個問題,試圖實現標記和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? –