【发布时间】:2016-06-08 14:31:47
【问题描述】:
我正在使用 AngularJS 制作网站。
我已经在jade中声明了变量:
div {{event.latitude}} {{event.longitude}}
input#latitude(type='number' name='latitude' ng-model='event.latitude' required)
input#longitude(type='number' name='longitude' ng-model='event.longitude' required)
在同一页面上,我使用的是 Google 地图。我正在更新 JavaScript 中的上述变量,如下所示:
// adds a listener for when the user clicks the map
map.addListener('click', function(event){
// gets lat/long position from where the user clicked
var latitude = event.latLng.lat();
var longitude = event.latLng.lng();
var latlng = new google.maps.LatLng(latitude, longitude);
// sets the event marker to where the user clicked
eventLocation.setPosition(latlng);
console.log('Event Location:\n' , latitude, longitude);
document.getElementById('latitude').value = latitude;
document.getElementById('longitude').value = longitude;
});
此代码有效。当我单击地图时,该纬度和经度会在表单输入框中更新。
但是,我遇到的问题是 ng-model 变量没有更新。如上所示,我通过插值显示 ng-model 变量。但是,当我手动单击输入框并自己更改值时,它们只会显示一个值。当 javascript 更改输入值时,它们不会更新。
谁能指出我做错了什么?
【问题讨论】:
标签: angularjs google-maps-api-3 angular-ngmodel