я этот фабричный Тар вызов внешнего апи, который возвращает массив:Angularjs завода HTTP возвращаемое значение
angular.module('starter.services', [])
.factory('PlacesService', function($http) {
var places = "";
var request = $http({
method: "get",
url: 'http://someurl/getPlaces.php'
});
request.then(function (data) {
places = data.response
});
console.log(places); // return empty string
return {
all: function() {
return places;
},
get: function(placesId) {
return places[placesId];
}
}
});
места переменного возвращаемый НТТРОМ пустая строка. Если я инициализирую места как массив, а я использую places.push (data.response), он работает, но возвращает массив массивов. Не могли бы вы мне помочь?
Ваше обещание кажется отклоненным, поэтому ваша переменная по-прежнему является пустой строкой. Попробуйте следующее: request.then (функция (данные) { places = data.response }, функция (ошибка) {console.log (ошибка);}); –
Ошибка ... только пустая строка из console.log (места); –
Хахаха, не могу поверить, что я упустил эту деталь, @Todd Miller прав :) –