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
функция.
как это