Я пытаюсь получить JSON из api с XMLHttpRequest внутри фабрики, но он заканчивается возвратом undefined, даже несмотря на то, что вход в него предполагает, что он должен работать нормально.фабрика Cordova/AngularJS GET JSON XMLHttpRequest
Вот мой завод код
.factory('MyService', function(){
return {
getJSON: function(path){
var xhr = new XMLHttpRequest();
xhr.open("Get", path, true);
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status === 200){
console.log(JSON.parse(xhr.responseText)); // Displays a correct JSON object
return JSON.parse(xhr.responseText); // Returns said object
}else{
return xhr;
}
}
};
xhr.send();
}
}
})
Здесь я называю обслуживание от моего контроллера
$scope.test = MyService.getJSON("api url"); // Ends up as undefined
console.log внутри заводских триггеров и отображает JSON правильно, как когда-либо $ сфера. тест заканчивается тем, что он не определен, хотя мы возвращаем тот же JSON в $ scope.test
Если кто-нибудь не знает, почему это не работает, это было бы здорово, чем k вы
У меня включено перекрестное начало, иначе console.log не смог показать действительный объект JSON, который извлекается из местоположения api. – Kilppari