首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用ng-map显示多个标记。

无法使用ng-map显示多个标记。
EN

Stack Overflow用户
提问于 2017-02-20 11:47:27
回答 2查看 474关注 0票数 1

我试图使用ng地图动态地显示多个标记,如下所示。

代码语言:javascript
复制
    <div class="panel-body" style="height:300px">
      <map ng-transclude class='google-map' center='map.center' zoom="map.zoom">
          <marker ng-repeat="pos in tabledata" position="{{pos.lat}}, {{pos.lng}}"></marker>
      </map>
   </div> 

控制器代码如下。

代码语言:javascript
复制
 $http({
        method: "GET",
        url: "http://xx.xxx.x.xx:3000/abc",
        params:{parameters}
    }).then(function(success){
        $scope.tabledata = success.data;
    },function(error){
        console.log('error ' + JSON.stringify(error));
    });

作为Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{pos.lat}}, {{pos.lng}}] starting at [{pos.lat}}, {{pos.lng}}].,我收到了错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-20 11:54:52

你在使用角时有语法错误,

position="{{pos.lat}}, {{pos.lng}}"应该是position="{{[pos.lat, pos.lng]}}"

<marker ng-repeat="pos in tabledata" position="{{pos.lat}}, {{pos.lng}}"></marker>

这条线应该是,

<marker ng-repeat="pos in tabledata" position="{{[pos.lat,pos.lng]}}"></marker>

所以,密码是,

代码语言:javascript
复制
    <div class="panel-body" style="height:300px">
      <map ng-transclude class='google-map' center='map.center' zoom="map.zoom">
          <marker ng-repeat="pos in tabledata" position="{{[pos.lat, pos.lng]}}"></marker>
      </map>
   </div> 

HERE IS AN EXAMPLE

票数 2
EN

Stack Overflow用户

发布于 2017-02-20 11:56:36

职位数据应该如下所示:

代码语言:javascript
复制
pos = [40.71, -73.21]

因此,您需要将数据转换为数组定义。将此函数添加到控制器中:

代码语言:javascript
复制
$scope.getCoordinates = function(oldPos){
    var newPos : [oldPos.lat,oldPos.lng];
    return newPos;
}

并在适当的位置使用:

代码语言:javascript
复制
<marker ng-repeat="pos in tabledata" position="getCoordinates(pos)"></marker>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42343753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档