0

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
4

1 に答える 1