使用angular-google-maps指令,异步加载的<markers>不能正常工作</markers>

时间:2014-06-11 15:12:15

标签: javascript angularjs google-maps google-maps-api-3 angular-google-maps

我正在使用angular-google-maps(http://angular-google-maps.org/)在我的AngularJS应用程序中创建地图。在<google-map>元素中,我有一个<markers>元素,其models属性设置为一个数组,该数组是$ http.get请求的结果。但由于某种原因,标记永远不会加载。

为了知道数据的存在,我在地图旁边设置了一个带有ng-repeat的简单列表,在返回结果时输出数组中每个元素的id,它确实填充了列表,所以我我不确定为什么在使用<markers>指令时没有填充标记。是因为它们是从$ http.get加载而我需要做一些不同的事情吗?

这就是我现在正在做的从服务器获取数据的全部内容。卡车是一种具有取景器功能的服务。

Trucks
  .findAll()
  .then(function(success) {
    $scope.trucks = success.data;
  }, function(error) {
    console.debug(error);
  });

我的HTML看起来像这样。

编辑 - 我更多地阅读了文档并发现我需要添加coords属性='self',因为经度和纬度是模型本身的一部分,但标记仍然没有出现

<div class="row row-fluid">
    <div class="google-map col-xs-9" center="map.center" zoom="map.zoom">
        <markers models="trucks" do-rebuild-all="true" do-cluster="true" coords="'self'"></markers>
    </div>
    <div class="col-xs-3">
        <ul>
            <li ng-repeat="truck in trucks">{{truck.id}}</li>
        </ul>
    </div>
</div>

感谢。

1 个答案:

答案 0 :(得分:1)

我知道这看起来很奇怪,它可能无法解决您的问题,但do-cluster属性实际上应该是doCluster。由于这些指令的构建方式,您实际上为这些指令执行了Camel案例。你能发布一个你要回来的数据的例子吗?另外,我相信do-rebuild-all也将是doRebuildAll