gpt4 book ai didi

javascript - Angular 范围不会在应用时更新

转载 作者:行者123 更新时间:2023-12-03 12:37:22 24 4
gpt4 key购买 nike

我无法更新我在 ng-repeat 中处理的作用域变量

 <div ng-controller="MapViewCtrl">
<a class="item item-avatar" ng-href="#/event/tabs/mapView" >
<img src="img/location.jpg"/>
<span class="input-label">Locations Of event</span>
<div ng-repeat="item in positions" style="font-size: 12">{{item.address}}</div>
</a>
</div>

我的 Controller 看起来像:

 $scope.closePage = function() {
for (var i = 0; i < markers.length; i++) {
var lng = markers[i].position.A;
var lat = markers[i].position.k;
var address = "";
var latlng = new google.maps.LatLng(lat, lng);
$scope.$apply( $scope.geocoder.geocode({'latLng': latlng},function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
address =results[0].formatted_address;
var location ={
address: address
}
$scope.positions.push(location);
}
}
}));
}
$state.go ('eventmenu.createevent');
};

您对如何更新职位变量有什么建议吗?

最佳答案

您需要将包含代码的函数传递给 $scope.$apply ,而不仅仅是代码:

$scope.geocoder.geocode({'latLng': latlng},function(results, status) {
$scope.$apply(function(){
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
address =results[0].formatted_address;
var location = {
address: address
}
$scope.positions.push(location);
}
}
})
});

另请注意,在地理编码器的回调中调用了 apply。这告诉 Angular 它需要检查范围内的更改。

关于javascript - Angular 范围不会在应用时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com