Angularjs UI总是显示最后一个infowindow

时间:2013-06-13 19:15:41

标签: angularjs angular-ui

我正在使用angularjs UI-map,我从firebase循环数据。 到目前为止这么好,但是当我点击标记时它总是显示最后的查询数据。 这是剪切代码

在html中

    <!-- Setup Marker -->
    <div    ng-repeat="marker in markers"
            ui-map-marker="markers[$index]"
            ui-event="{'map-click': 'showMarkerInfo(marker)'}">
    </div>

    <!-- Setup Marker Info Window -->
    <div ui-map-info-window="infoWindow">
        <div>Marker - <input ng-model="full_name"></div>
        <div>Message</div>
    </div>

在JS中

firebaseAuth.firebaseRef.child('/human/').on('child_added', function(snapshot) {
    $scope.users = snapshot.val();
    $scope.latLng = new google.maps.LatLng($scope.users.lat, $scope.users.lng);
    $scope.markers.push(new google.maps.Marker({
        map: $scope.map,
        position: $scope.latLng
    }));

});


        $scope.showMarkerInfo = function(marker) {
            $scope.currentMarkerLat = $scope.users.full_name;
            $scope.infoWindow.open($scope.map, marker);
            console.log(marker);
        };

1 个答案:

答案 0 :(得分:0)

我还没有尝试过angular-ui,但这个问题看起来和&#34; Javascript infamous Loop problem&#34;相同,所以你可能想尝试一下:

ui-event="{'map-click': 'showMarkerInfo(markers[$index])'}"

但是,我猜它会遇到同样的问题,但值得一试。