Angularjs 角度传单:如何从ajax响应添加多个geojson

Angularjs 角度传单:如何从ajax响应添加多个geojson,angularjs,leaflet,angular-leaflet-directive,Angularjs,Leaflet,Angular Leaflet Directive,我正在尝试向地图动态添加多个GeoJSON数据。如下图所示。但是,我没有看到数据被渲染 $http.get("/kp-data").success(function(data, status){ angular.forEach(data, function(k,v){ $scope.geojson[k.carId] = {data : k.data,

我正在尝试向地图动态添加多个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
                                }
                        }
                });
在本文中,geojson数据USA和JPN是硬编码的。我修改了动态添加的代码。如果我对单个geojson数据进行如下修改,代码就可以工作

   $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
                            }
                    }
                 }
            });

你有错误信息吗

在调用
angular.forEach
函数之前,应该先将
$scope.geojson
作为对象清除


类似。

在声明$scope.jeojson=[]之后,其长度为0,因此循环中$scope.jeojson[index]未定义(索引#0)。我想你应该试试:$scope.jeojson.push(json)


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

是的,我已经声明了变量,否则第二种情况就不起作用了