2016-06-15 77 views
0

我一直試圖從工廠內的XMLHttpRequest API獲取JSON,但它最終返回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你

回答

0

不妨回答這個問題,因爲它是一個半年前解決了,問題是,工廠沒有返回在承諾使用$ q之後,它開始按預期工作。