我正在尝试在谷歌地图中移动一个标记。我有一个移动他们的功能,他们工作正常。为了测试,我在脚本中调用了它们,它们按预期工作。
但是当我试图在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>
答案 0 :(得分:1)
看看这个codepen here。
它按预期工作。我认为问题在于你的idkey。使idkey动态化并将其绑定到标记对象的ID。
<强> HTML 强>
<div ng-app="myApp" ng-controller="gMap">
<md-button class="md-raised md-primary" ng-click="x()">Marker</md-button>
<ui-gmap-google-map
center='map.center'
zoom='map.zoom' aria-label="Google map">
<ui-gmap-marker
coords="marker.coords" options="marker.options" events="marker.events" idkey="marker.id">
<ui-gmap-window>
<div>{{marker.window.title}}</div>
</ui-gmap-window>
</ui-gmap-marker>
</ui-gmap-google-map>
</div>
<强>控制器强>
myApp.controller("gMap", function($scope) {
$scope.x = function() {
console.log('a');
$scope.marker = {
id: 6,
"coords": {
"latitude": "40.7903",
"longitude": "-73.9597"
}
}
}
$scope.marker = {
id: 6,
"coords": {
"latitude": "45.5200",
"longitude": "-122.6819"
}
}
$scope.map = {
center: {
latitude: 39.8282,
longitude: -98.5795
},
zoom: 4
};
});