2016-12-01 30 views
0

我的要求是當我點擊谷歌地圖上的某些標記時,地點必須在引導列表中更新。但是,當我點擊陣列更新,但列表不會在bootstrap更新。當我使用infowindow一切正常。地圖標記和引導列表

HTML

<div class="panel-body"> 
    <ul style="padding-left:0px;"> 
     <li class="list-group-item list-group-item-info" ng-repeat="x in routesub" style="font-size:smaller;"> 
      <span class="badge" ng-click="delloc(x)">x</span> 
       {{x}} 
     </li> 
    </ul> 
    <button class="btn btn-danger btn-sm" ng-click="subsearch()">SUBSCRIBE</button> 
</div> 

app.js

google.maps.event.addListener(marker, 'click', (function (marker, i) { 
    return function() { 

        // var content1 = "<div><h6><font color='black'>" + locations[i].Name + "</font></h6><input type = 'button' class = 'btn btn-success btn-sm' value = 'Select' ng-click = 'SubLoc();' /></div>"; 
        //var content = $compile(content1)($scope); 
        //$scope.infowindow.setContent(content[0]); 
        //$scope.infowindow.open($scope.map, marker); 
        $scope.SubLoc = function() { 
         if ($scope.routesub.indexOf(locations[i].Name) == -1) { 
          $scope.routesub.push(locations[i].Name); 
          $scope.routeidsub1.push(locations[i].LocationId); 
          marker.setIcon(icon_sel); 
          // $scope.infowindow.close(); 
         } 
         else { 
          //$scope.infowindow.close(); 
         } 
        } 
        $scope.SubLoc(); 

       } 
      })(marker, i)); 

當我註釋掉那些評論零部件和使用信息窗口一切perfecftly制定。當我點擊標記時發表評論時,數據存儲在$scope.routesub中,但在html中不可見。幫助我

回答

0

由於您在谷歌事件偵聽器的「角度世界」之外,您有角度地告訴它必須啓動一個消化週期來刷新它的界限值。

包裹要更新到像這樣的$apply函數的值:

$scope.$apply(function(){ 
    $scope.routesub.push(locations[i].Name); 
}); 

另外,您也可以使用$timeout(我的首選方法),因爲它不會產生「消化已在運行」錯誤:

$timeout(function(){ 
    $scope.routesub.push(locations[i].Name); 
}); 
+0

謝謝Danscho。現在它工作正常 – Alan