我正在使用 angular-google-maps 向我的地图添加标记。我遵循了加载 Maps API 的所有最佳实践,并且我在地图上显示了一组项目。除了删除项目外,一切都运行良好。当我从项目数组中删除一个项目时,所有标记都会消失。我显然做错了什么,但我不明白到底是什么。另一个奇怪的部分:当我添加另一个项目时,标记成功添加到地图中,但它是我能看到的唯一标记。此外,angular-google-map-marker 元素仍然在 dom 中,所以我不确定它们为什么不显示(我尝试将可见性设置为可见,显示为任何内容但不显示)。我的代码如下(Jade/LiveScript)。
索引.jade
ui-gmap-google-map(center="map.center", zoom="map.zoom")
ui-gmap-marker(ng-repeat="item in items", idKey="item._id", coords="item.location")
应用程序.ls
angular.module("appName", ["uiGmapgoogle-maps", "appController"])
.config (uiGmapGoogleMapApiProvider) ->
uiGmapGoogleMapApiProvider.configure({
v: "3.17",
libraries: "weather,geometry,visualization"
})
应用控制器.ls
appController = ($scope, $timeout, $mdSidenav, $http, $log, $mdDialog) ->
...
$scope.items =
"id1":
_id: "id1"
location:
type: "Point"
coordinates: [-71, 42]
...
$scope.sendItemReq = (ev) ->
$http($scope.itemReq)
.success (data, status, headers, config) ->
currentItemId = $scope.currentItem._id
delete $scope.items[currentItemId]
有什么想法我在这里做错了吗?让我知道我是否应该提供更多信息。
PS我知道我必须做一个 setMap(null) 来实际删除标记,我只想先处理这一步。