更新ng-model时,AngularJS $范围不会更新

时间:2014-03-21 20:34:31

标签: jquery html angularjs angularjs-scope

我有以下html

<input id="zoom" name="zoom" style="width:100px" type="text" ng-model="user.zoomlvl">

当我运行以下内容时,它会更新上面的html输入字段

google.maps.event.addListener(map, 'zoom_changed', function() {
    mapZoom();
});
function mapZoom(){
    valZoom = map.getZoom();
    $('#zoom').val(valZoom);
}

$scope.user.zoomlvl更新了输入字段时,zoom_changed仍然无法更新。

1 个答案:

答案 0 :(得分:3)

如果您使用的是不属于Angular的事件(例如zoom_changed),则他们不会像$scope.$apply()那样在最后运行ng-click。这就是为什么你的$scope没有更新的原因。因此,在您的活动中,您需要添加$scope.$apply()

function mapZoom(){
    valZoom = map.getZoom();
    //$('#zoom').val(valZoom);
    // This is also probably better
    $scope.user.zoom1v1 = valZoom
    $scope.$apply();
}