无法使用 ng-map 显示多个标记
Unable to display multiple markers using ng-map
我正在尝试使用 ng-map 动态显示多个标记,如下所示。
<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>
控制器代码如下
$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}}].
在
使用 angular 时出现语法错误
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>
所以,代码将是,
<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>
您的位置数据应如下所示:
pos = [40.71, -73.21]
因此您需要将数据转换为数组定义。将此功能添加到您的控制器:
$scope.getCoordinates = function(oldPos){
var newPos : [oldPos.lat,oldPos.lng];
return newPos;
}
并在位置使用它:
<marker ng-repeat="pos in tabledata" position="getCoordinates(pos)"></marker>
我正在尝试使用 ng-map 动态显示多个标记,如下所示。
<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>
控制器代码如下
$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}}].
在
使用 angular 时出现语法错误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>
所以,代码将是,
<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>
您的位置数据应如下所示:
pos = [40.71, -73.21]
因此您需要将数据转换为数组定义。将此功能添加到您的控制器:
$scope.getCoordinates = function(oldPos){
var newPos : [oldPos.lat,oldPos.lng];
return newPos;
}
并在位置使用它:
<marker ng-repeat="pos in tabledata" position="getCoordinates(pos)"></marker>