我尝试使用新的地理代码值更新字段,但即使模型已更新,它也不会与第一次调用绑定。我的控制器代码如下:
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);
}
});
}
}
我的代码中缺少什么部分?
答案 0 :(得分:2)
你错过了 $范围()$申请();
请参阅http://fiddle.jshell.net/yfLek2cw/
您的原始小提琴中的Angular CDNLink也不起作用。原因是,地理定位回调不是从角度进行的。因此脏检查机制在那里不起作用。要再次启动脏检查,您必须调用$ scope。$ apply();
这是所有外部回调函数所必需的,即使这些回调在角度范围内也是如此。 Auto $ apply仅适用于$ timeout或$ q service
等角度回调答案 1 :(得分:0)
您的代码实际上正常运行,您只需使用$scope
方法更新$apply()
即可。这是一个小提琴: