AngularJS标记坐标未在模型中更新

时间:2014-08-12 13:07:38

标签: angularjs google-maps

我正在尝试角度地图,我面临的问题与获取地图标记位置有关,并在移动标记时显示。但移动标记时标记模型未更新。我使用官方示例并通过更改dragend事件来解决问题。我使用了apply来改变标记坐标值

events: {
    dragend: function (marker, eventName, args) {
        $log.log('marker dragend');
        $log.log(marker.getPosition().lat());
        $log.log(marker.getPosition().lng());
        $scope.$apply(function(){
            $scope.marker.coords.latitude = marker.getPosition().lat();
            $scope.marker.coords.longitude = marker.getPosition().lng();
        });
    }
}

可以看到完整的示例here

但我对这种方法并不满意。是否有任何解决方案,我不需要在此块中更新标记坐标

$scope.$apply(function(){
    $scope.marker.coords.latitude = marker.getPosition().lat();
    $scope.marker.coords.longitude = marker.getPosition().lng();
});

1 个答案:

答案 0 :(得分:0)

有两种方法可以将更新的数据发送到您的指令。

  1. $ apply:如果要更新来自父控制器的数据,而其他指令也使用相同的,则使用此方法。但是,在此函数之后,$ digest将调用更新局部变量。
  2. $ digest:如果要更新指令级范围变量,则可以直接调用此方法。