2017-02-27 33 views
0

我试图动态地将多个GeoJSON数据添加到我的地图。如下所示。但是,我没有看到数据呈现。Angular-leaflet:如何从ajax响应中添加多个geojson

$http.get("/kp-data").success(function(data, status){ 

       angular.forEach(data, function(k,v){ 
         $scope.geojson[k.carId] = {data : k.data, 
           resetStyleOnMouseout: true, 
           style: { 
            fillColor: k.color, 
            weight: 2, 
            opacity: 1, 
            color: 'white', 
            dashArray: '3', 
            fillOpacity: 0.7 
           } 
         } 
       }); 

在这个example geojson数据USA和JPN是硬编码的。我修改了动态添加的代码。代码的作品,如果我修改如下单个几何数据

$http.get("/kp-data").success(function(data, status){ 

      angular.forEach(data, function(k,v){ 
        if(v==1){ 
        $scope.geojson = {data : k.data, 
          resetStyleOnMouseout: true, 
          style: { 
           fillColor: k.color, 
           weight: 2, 
           opacity: 1, 
           color: 'white', 
           dashArray: '3', 
           fillOpacity: 0.7 
          } 
        } 
       } 
      }); 

任何帮助,非常感谢。谢谢

回答

0

你有一些错误信息?

而且您应该在您调用angular.forEach函数之前将对象$scope.geojson作为对象删除。

like this

+0

是的我已经声明了变量,否则第二种情况下不会有效 –

0

声明$ scope.jeojson = []后,其长度为0,所以在循环$ scope.jeojson [index]是未定义的(索引#0)。我认为你应该尝试一下:$ scope.jeojson.push(json)...

而且,我建议你使用“for”而不是“angular.forEach”。希望对你有好处!