我想創建一個谷歌地圖信息窗口中的鏈接,使用角谷歌,地圖模塊的ui-gmap-windows
。如何將ui-gmap-windows InfoWindow/Marker的值傳遞給ui-sref?
在我的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;
});
注意,我使用了 '控制器' 的語法,所以控制器中的vm.markers
在html模板中顯示爲main.markers
。
我看到的問題是,在HTML中的data-ui-sref="display({id: id})"
改變狀態到「顯示」頁面,但通過id
不推爲$ stateParams值,這顯然是不好的,因爲我不知道要顯示什麼..
我有另一個鏈接到同一頁面,信息窗口之外創建的(在結果列表),以及確實擠過id的值:
<div data-ng-repeat="entry in main.itemlist">
<div data-ui-sref="display({id: entry.id})">
獲得I的任何幫助非常感謝nfoWindow的鏈接工作。
您可以使用一個工廠,以保持$位置PARAMS才能,或創建一個過濾器/裝飾,每一個狀態改變發生。 – irth 2014-12-05 06:44:49
您是否確認'id'是在'.mapinfowindow'範圍內定義的?在'span'中添加'{{id}}'或者其他東西,看它是否可用。 – mjtko 2014-12-05 10:15:18
除非我把它放在'ng-non-bindable'中,否則''範圍內的任何東西都不可用。但是,如果我設置了'ng-non-bindable',我不能使用'ui-sref'中的值... O_o –
egeland
2014-12-05 16:54:56