目的 マップ上に多数のランダム マーカーを表示します。それらのいずれかがクリックされると、情報ウィンドウが開きます。API ページ (マーカー) の例の 1 つを使用し、ウィンドウのマークアップと、ウィンドウを表示するためのクリック ハンドラー メソッドを追加しました。しかし、私はそれを機能させることはできません
問題 マーカーは表示されますが、クリックしてもウィンドウが表示されません。
さておき 、タグと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 タグが持つことができる子は 1 つだけのようです。そのため、すべてのコンテンツを div で囲む必要がありました。