ng-model数据无法正常工作

时间:2014-08-21 14:39:15

标签: javascript angularjs angularjs-ng-model

我尝试使用新的地理代码值更新字段,但即使模型已更新,它也不会与第一次调用绑定。我的控制器代码如下:

function TheReportCtrl($scope) {
    $scope.code = [];
    $scope.code.lat = "19.2555500";
    $scope.getCode = function () {
        var geocoder = new google.maps.Geocoder();
        var address = "12323 Barker Cypress Rd, Cypress, Texas"
        geocoder.geocode({
            'address': address
        }, function (results, status) {
            if (status === google.maps.GeocoderStatus.OK) {
                $scope.code.lat = results[0].geometry.location.k;
            } else {
                console.log("Geocoding failed: " + status);
            }
        });
    }
} 

我的代码中缺少什么部分?

Here is the JsFiddle Code Sample

2 个答案:

答案 0 :(得分:2)

你错过了 $范围()$申请();

请参阅http://fiddle.jshell.net/yfLek2cw/

您的原始小提琴中的Angular CDNLink也不起作用。原因是,地理定位回调不是从角度进行的。因此脏检查机制在那里不起作用。要再次启动脏检查,您必须调用$ scope。$ apply();

这是所有外部回调函数所必需的,即使这些回调在角度范围内也是如此。 Auto $ apply仅适用于$ timeout或$ q service

等角度回调

答案 1 :(得分:0)

您的代码实际上正常运行,您只需使用$scope方法更新$apply()即可。这是一个小提琴:

http://fiddle.jshell.net/7v2dfLsv/3/