2017-06-23 141 views
0

我想使用角度js谷歌地圖API創建點擊事件。使用角度Google地圖標記點擊事件

點擊標記我想調用一個函數而不打開信息窗口。

我該怎麼做?

$scope.map = new google.maps.Map(document.getElementById('map'), { 
         zoom: 12, 
         center: { lat: parseFloat(Center_lat) , lng: parseFloat(center_lang) } 
        }); 

        $scope.infowindow = new google.maps.InfoWindow({ 
         // content: '' 
        }); 

        angular.forEach($scope.panoramas, function(value, index) { 
         var latLang = $scope.panoramas[index].project_latLng ; 
         // console.log(latLang) 
         var LatLngArr = latLang.split(","); 
         var lat = LatLngArr[0]; 
         var lang = LatLngArr[1]; 
         console.log("lat " ,lat); 

         var marker = new google.maps.Marker({ 
          position: new google.maps.LatLng(parseFloat(lat), parseFloat(lang)), 
          map: $scope.map, 
          icon:"images/map-circle.png", 
          draggable:true, 
          label: { 
           color: 'black', 
           fontWeight: 'bold', 
           text: $scope.panoramas[index].panoId, 
          }, 

          title: $scope.panoramas[index].panoId 
         }); 

         var content = '<a ng-click="ShowCenterPano(' + index + ')" class="btn btn-default">View details</a>'; 

         var compiledContent = $compile(content)($scope) 

         google.maps.event.addListener(marker, 'click', (function(marker, content, scope) { 
          return function() { 
           scope.infowindow.setContent(content); 
           scope.infowindow.open(scope.map, marker); 
          }; 
         })(marker, compiledContent[0], $scope)); 


         $scope.ShowCenterPano = function(index) { 
          // alert(JSON.stringify($scope.panoramas[index])); 
         } 

此處信息窗口打開。如何刪除信息窗口並直接調用ShowCenterPano()函數。

回答

0

您在點擊標記時想要發生的所有事情都在偵聽器中。 我認爲你讓你的代碼不必要地複雜。只要把一個監聽器上的標記marker.addListener('click', function() {});並在這個函數運行ShowCenterPano()

和信息窗口打開的原因是因爲你問它與這行代碼scope.infowindow.open(scope.map, marker);

+0

它給我這個錯誤 打開Uncaught ReferenceError:ShowCenterPano沒有定義 – upendtu

+0

你在調用$ scope.ShowCenterPano(index)?您的索引也應該是該函數可用的變量。 – Nat

+0

還有一點,約定是讓函數名以小寫字母開頭,所以它應該是showCenterPano – Nat

相關問題