我正在使用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);
};
答案 0 :(得分:0)
我还没有尝试过angular-ui,但这个问题看起来和&#34; Javascript infamous Loop problem&#34;相同,所以你可能想尝试一下:
ui-event="{'map-click': 'showMarkerInfo(markers[$index])'}"
但是,我猜它会遇到同样的问题,但值得一试。