Angular-листовка: как добавить несколько геоджонов из ответа 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
                                }
                        }
                });

В этом примере данные геозон США и 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
                            }
                    }
                 }
            });

2 ответа

После объявления $scope.jeojson = [] его длина равна 0, поэтому в цикле $scope.jeojson[index] не определено (index # 0). Я думаю, вы должны попробовать что-то вроде: $scope.jeojson.push(json)...

И я рекомендую вам использовать "для", а не "angular.forEach". Надеюсь, это хорошо для вас!

У вас есть сообщение об ошибке?

И вы должны заявить $scope.geojson как объект, прежде чем позвонить angular.forEach функция.

как это

Другие вопросы по тегам