angular-google-maps モジュールの を使用して、Google マップの InfoWindow 内にリンクを作成しようとしていますui-gmap-windows
。
私の HTML テンプレートには、次のものがあります。
<ui-gmap-google-map center='main.map.center' zoom='main.map.zoom' options='main.map.options'>
<ui-gmap-markers models="main.markers" coords="'self'" icon="'icon'" options="'options'" click="'onClick'" fit="true">
<ui-gmap-windows show="'showWindow'" closeClick="'closeClick'" ng-cloak>
<div class="mapinfowindow" data-ui-sref="display({id: id})">
<span class="itemname" data-ng-non-bindable>{{ title }}</span>
</div>
</ui-gmap-windows>
</ui-gmap-markers>
</ui-gmap-google-map>
私のコントローラーには、次のものがあります。
uiGmapGoogleMapApi.then(function(maps) {
vm.itemlist = search.getItemList();
var markers = [];
_.each(vm.itemlist,function(item){
search.getGeometry(item.href).then(function(marker) {
marker.title = item.en;
marker.id = item.href;
marker.showWindow = false;
marker.options = {
title: item.en,
icon: markericon.normal
};
marker.onClick = function() { vm.markerClick(marker); };
marker.closeClick = function() { vm.markerCloseClick(marker); };
markers.push(marker);
});
});
vm.markers = markers;
});
'controller as' 構文を使用しているため、コントローラーの は html テンプレートのようにvm.markers
表示されることに注意してください。main.markers
私が見ている問題はdata-ui-sref="display({id: id})"
、html の状態が「表示」ページに変更されますが、$stateParams 値としてプッシュされないid
ことです。これは、何を表示するかわからないため、明らかに良くありません。 .
InfoWindow の外 (結果のリスト) に作成された同じページへの別のリンクがあり、id 値をプッシュします。
<div data-ng-repeat="entry in main.itemlist">
<div data-ui-sref="display({id: entry.id})">
InfoWindow のリンクを機能させるための助けをいただければ幸いです。