目标 在地图上显示一堆随机标记。单击其中一个时打开一个信息窗口。我使用了 API 页面中的一个示例(标记),并添加了窗口的标记和单击处理程序方法来显示窗口。但是我无法让它工作
问题 显示标记,但单击时不显示任何窗口。
除了 我在使用标签和 ng-repeat 时有这个工作;但文档说标签是首选方法。
有任何想法吗?
此处示例:https ://angular-ui.github.io/angular-google-maps/#!/api
戳这里: http ://plnkr.co/edit/ze7EKMQNV7MLGkmlhiAC
<div id="map_canvas" ng-controller="mainCtrl">
<google-map center="map.center" zoom="map.zoom" draggable="true" options="options" bounds="map.bounds">
<markers models="randomMarkers" coords="'self'" icon="'icon'" click="'onClicked'">
<window ng-cloak show="'showWindow'">
<h1>{{title}}!</h1>
</window>
</markers>
</google-map>
</div>
$scope.$watch(function() {
return $scope.map.bounds;
}, function(nv, ov) {
// Only need to regenerate once
if (!ov.southwest && nv.southwest) {
var markers = [];
for (var i = 0; i < 5; i++) {
markers.push(createRandomMarker(i, $scope.map.bounds))
}
for (var y = 0; y < 5; y++) {
var marker = markers[y];
marker.onClicked = function() {
marker.showWindow = true;
}
}
$scope.randomMarkers = markers;
}
}, true);
已解决 这已使用 nitewulf50 链接的 plunk 解决。
一些注意事项:
看来 Window 标签只能有一个孩子。所以我需要将所有内容包含在一个 div 中。