尝试从GMaps事件修改角度模型时遇到一些麻烦,继承人是代码:
function CtrlGMap($scope) {
var mapOptions = {
center: new google.maps.LatLng(-54.798112, -68.303375),
zoom: 11,
//disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.SATELLITE
};
map = new google.maps.Map(document.getElementById('mapCanvas'), mapOptions);
google.maps.event.addListener(map, "click", function(e) {
lat = e.latLng.lat();
lng = e.latLng.lng();
$scope.lat = lat;
)};
HTML:
<body ng-controller="CtrlGMap">
<div id="mapCanvas"></div>
<form role="form" style="width: 30%; margin:0 auto;">
<div class="form-inline">
<div class="form-group">
<label class="sr-only" for="lat">Latitud</label>
<div class="input-group">
<span class="input-group-addon">Lat</span>
<input type="text" class="form-control" id="lat" ng-model="lat" disabled>
</div>
</div>
</div>
</form>
问题是我无法访问GMap事件中的$ scope ...为什么会这样?
答案 0 :(得分:0)
如果您要将范围更改为angularjs范围之外,我认为您需要调用$ scope.apply()。
所以这样:
google.maps.event.addListener(map, "click", function(e) {
lat = e.latLng.lat();
lng = e.latLng.lng();
$scope.lat = lat;
// Let angularjs know.
$scope.$apply();
)};