【发布时间】:2016-05-04 13:02:06
【问题描述】:
我正在尝试在 google maps 地图内移动一个标记。我有一个移动它们的功能,它们工作正常。为了测试,我在脚本中调用了它们,它们按预期工作。
但是当我尝试在 ng-click 指令中调用该函数时,该函数被调用但整个代码并未被执行。
<md-button class="md-raised md-primary" ng-click="x()">Click here to move the marker</md-button>
方法:
$scope.x = function ()
{
console.log('a');
$scope.marker = {
id: 6,
coords: {latitude:-28.226349,longitude:-52.381581}
};
}
在控制台内打印“a”,但标记没有移动到纬度:-28.226349,经度:-52.381581。
如果我这样调用脚本中的函数:
$scope.x = function ()
{
console.log('a');
$scope.marker = {
id: 6,
coords: {latitude:-28.226349,longitude:-52.381581}
};
}
$scope.x();
加载页面时,标记位于纬度:-28.226349,经度:-52.381581。
整个 HTML:
<md-button class="md-raised md-primary" ng-click="x()">Click here to move the marker</md-button>
<div id="map" ng-controller="MapCtrl">
<ui-gmap-google-map center='map.center' zoom='map.zoom' options="map.options">
<ui-gmap-marker coords="marker.coords" options="marker.options" events="marker.events" idkey="6"></ui-gmap-marker>
</ui-gmap-google-map>
【问题讨论】:
-
你能控制台记录 $scope.marker 以检查坐标值是否正在更新吗?这也可能是数据绑定的问题,坐标值正在更新但正确绑定到屏幕。
-
我现在已经尝试过了,令人惊讶的是坐标更新了......我现在注意到的另一个令人毛骨悚然的事情是,当我调用它时,'a'(来自 console.log)出现了两次在脚本上,只有一次当我通过 ng-click 调用它时,我不知道这是否相关......两种方式(当我通过 ng-click 和脚本调用函数时)坐标更新。
-
那么您的问题现在解决了吗?坐标是否正确更新您是否仍然面临绑定问题?
-
不抱歉。我的问题是marker不动,坐标在更新,不知道为什么,还是不动。
-
看起来这是一个绑定问题(变量更改未绑定到 HTML)。你能分享更多关于如何在 HTML 中绑定坐标的代码吗?
标签: javascript angularjs google-maps angularjs-scope