RangeError:超出最大调用堆栈大小uiGmapMarker问题

时间:2016-05-10 11:46:28

标签: javascript angularjs google-maps

我在我的应用程序中使用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年以上增加,那么它会超出此误差,它运行正常。我不知道发生了什么。

我还想添加一条线索,我有一个表达式。如果我删除了那个监视表达式,那么我的代码工作正常,否则失败。如果有人可以帮助我那么请帮助。

0 个答案:

没有答案