for ループでオブジェクトを作成し、別の関数を呼び出してインデックスを渡すことができるクリック関数をループに追加しようとしています。これにより、どのオブジェクトがクリックされたかがわかります。ループは次のとおりです。
var markers = [];
for (x = 0; x < response.data.length; x++) {
var ret = {
onClicked: function () { onMarkerClicked(x); },
locationId: response.data[x].CASO_nid,
id: x, //-shows proper index
latitude: response.data[x].Latitude,
longitude: response.data[x].Longitude,
title: x, // shows proper index
showWindow: false,
fit: true
};
markers.push(ret);
}
$scope.results = markers;
コンソールで作成されたオブジェクトを見ると、x を追加したすべての場所が正しく設定されていることがわかりますx
。問題は、このオブジェクトを作成した後にクリックすると、すべてのオブジェクトがx
最後に設定された番号になることです。最終的な数字だけでなく ndex を適切に取得するには、この関数をどのように記述すればよいでしょうか??
see in console:
0:
Objectfit:
trueid: 0
idKey: 0
latitude: 42.0230636
locationId:10299
longitude: -87.9620276
onClicked: function () { onMarkerClicked(x); }
showWindow: false
title: 0