我在我的应用程序中使用angular-google-maps 2.2.1
,我有一个列表“itemStatusData
”,其中的对象包含lat和lng的信息。当我将列表中的第一个元素推送到标记时,我的位置会完美更新,但是当我的列表中包含lat lng相关数据的大小增加时,当我尝试仅推送单个元素时,它会给我错误:
RangeError: Maximum call stack size exceeded
at baseClone (lodash.js:1686)
at lodash.js:1734
at lodash.js:3073
at baseForOwn (lodash.js:2046)
at baseClone (lodash.js:1733)
at lodash.js:1734
at lodash.js:3073
at baseForOwn (lodash.js:2046)
at baseClone (lodash.js:1733)
at lodash.js:1734
我有以下代码,它从服务器
获取lat lng数据列表$scope.play = function(){
$scope.carCurrentStatusData = [];
$q.when(Item.findItemGPSLocationHistory({itemid: itemid}).$promise, function(data){
$scope.itemStatusData = data;
});
}
ItemStatusData包含lat和lng的对象
在我的html中,我正在使用此代码:
<ui-gmap-google-map center='map.center' zoom='map.zoom'>
<ui-gmap-marker ng-repeat="marker in markers" coords="marker.coords" options="marker.options" idkey="marker.id">
</ui-gmap-marker>
</ui-gmap-google-map>
填充标记数据的代码是
$scope.fillMarkerData = function(value, data){
$scope.map = { center: { latitude: data.lat, longitude: data.lng }, zoom: parseInt($scope.zoom) };
$scope.markers = [];
var marker = {
id: value,
coords: {
latitude: data.lat,
longitude: data.lng
}
};
$scope.markers.push(marker);
};
这里我还想补充一点,如果我的包含lat lng数据的列表在1980年以上增加,那么它会超出此误差,它运行正常。我不知道发生了什么。
我还想添加一条线索,我有一个表达式。如果我删除了那个监视表达式,那么我的代码工作正常,否则失败。如果有人可以帮助我那么请帮助。