1

单击 angular-google-maps 中的标记时,我正在尽力显示一个窗口。几乎这里做了什么http://angular-google-maps.org/demo

这是生成标记的函数——它是从一个休息服务中调用的,每个标记对象都可以在坐标.json中查看:

var generateMarkers = function(markers) {

angular.forEach(markers, function(marker) {

  marker.onClick = function() {
    console.log('on click - opening window');
    marker.showWindow = true;
    $scope.$apply();
  }

  marker.closeClick = function() {
    console.log('close click - hiding window');
    marker.showWindow = false;
    $scope.$apply();
  }

});

$scope.map.randomMarkers = markers;

};

这是声明标记的代码(没有控制器嵌套和一个 $scope )。窗口将继承

  <google-map center="map.center" zoom="map.zoom" draggable="true" 
        bounds="map.bounds" control="map.control">


        <markers models="map.randomMarkers" coords="'self'" 
            icon="'icon'" 
            click="'onClick'">

           <windows 
                  show="'showWindow'" 
                  coords="'self'"  
                  closeClick="'closeClick'" ng-cloak="">
              <div>
                  Window with additional information
              </div>
         </windows>
        </markers> 
      </google-map>

这要么是 angular-google-maps 中的错误,要么是我做错了什么(很可能)

我创建了一个 plunkr,它演示了行为 --> http://plnkr.co/edit/z1TdYlYbhSYWZb7n3L4M?p=preview

请告诉我你的想法。

4

1 回答 1

3

为了子孙后代,这在https://github.com/nlaplante/angular-google-maps/issues/497得到了回答。

基本上,将坐标绑定到的属性初始化为一个空数组,以便引用以角度正确更新。

这可以在这里看到http://plnkr.co/edit/nbX0BIxNhxFrpzpruRWb?p=preview

于 2014-06-16T15:12:37.883 回答