我正在尝试在我的离子应用中实现谷歌地图。
我能够动态生成标记,但似乎无法绑定infowindows。
$scope.arrayOfMarkers = [];
for (var i = 0 ; i < results.length ; i++) {
var user = results[i];
var mySID = JSON.parse(window.localStorage.getItem("userObject")).userProfileId;
if (user.userProfileId != mySID) {
var userCoords = {
latitude: user.userProfileLatitude,
longitude: user.userProfileLongitude
};
var markerOptions = {
animation: "drop"
}
var thisMarker = {
id:i,
coords: userCoords,
options: markerOptions,
idKey: i,
window: {
show: false,
title: "Test"
}
}
$scope.arrayOfMarkers.push(thisMarker);
}
}
HTML
<ui-gmap-google-map id="map" center="map.center" zoom="map.zoom">
<ui-gmap-marker ng-repeat="marker in arrayOfMarkers" coords="marker.coords" options="marker.options" events="marker.events" idkey="marker.id" window="marker.window">
</ui-gmap-marker>
</ui-gmap-google-map>
当我点击标记时没有任何反应。我应该如何实现窗口?
答案 0 :(得分:1)
我查看了没有找到window
指令的文档
但看看你能用什么
<ui-gmap-windows show="{{window.show }}">
<div ng-non-bindable>{{window.title}}</div>
</ui-gmap-windows>
在ui-gmap-marker
内显示窗口
您可以参考链接doc for window
答案 1 :(得分:1)
您应该将ui-gmap-window
指令放在ui-gmap-marker
内,并在点击标记时调用函数。在我的示例中,调用函数toggleInfoWindow()
,如click="toggleInfoWindow()"
。它可能对你有帮助
<ui-gmap-google-map id="map" center="map.center" zoom="map.zoom">
<ui-gmap-marker ng-repeat="marker in arrayOfMarkers" coords="marker.coords" options="marker.options" click="toggleInfoWindow()" events="marker.events" idkey="marker.id" window="marker.window">
<ui-gmap-window options="windowOptions">
<div>{{title}}</div> //your information here
</ui-gmap-window>
</ui-gmap-marker>
</ui-gmap-google-map>
在控制器中添加toggleInfoWindow
功能:
$scope.toggleInfoWindow= function() {
$scope.windowOptions.visible = !$scope.windowOptions.visible;
};