2014-04-27 28 views
0

我對如何處理從$ q.all返回的結果有些困惑。

這裏是我的代碼...

var pageLoad = function() { 

     var pageLoadPromises = [ 
      youEmployerData.getEmployerPrograms($scope.employerId), 
      youEmployerData.getWorksites($scope.employerId) 
     ]; 

     $q.all(pageLoadPromises) 
     .then(function (results) { 

      $scope.programs = results[0]; 
      $scope.worksites = results[1]; 
      $scope.appLoaded = true; 

     }, function (r) { 

      handleResourceError(r); 

     }); 

    }; 

這裏是我的實際資源調用..

you.factory('youEmployerData', function ($resource) { 

    return { 

     getEmployerPrograms: function(employerId) { 
      return $resource("/api/programs/getemployerprograms?employerId=:id").query({ id: employerId }); 
     }, 

     getWorksites: function (employerId) { 
      return $resource("/api/employer/getworksites?employerId=:id").query({ id: employerId }); 
     } 
     } 
    } 

我已經驗證了我的資源調用的正常工作,我只知道我在做什麼then(function(results) {內部錯誤 - 我只是不太確定如何處理這些數據。

另外 - $scope.worksites應該是返回的工作點陣列,$scope.programs應該是一個程序數組。

如果您有任何問題或需要進一步澄清,請讓我知道。

下面是console.log(results)的屏幕截圖 - 它看起來是正確的,結果[0]只有1項和結果1($ scope.worksites) - 有多個項目,唯一的問題是因爲$ scope它不能正確地在屏幕上輸出,它就像陣列不正確或者是某種東西。對不起 - 很難形容。

enter image description here

+0

你什麼時候看到console.log結果? – ryanlutgen

回答

1

也許是因爲你錯過了一個事實,即$資源對象不是一個承諾?你可以試一下:

var pageLoadPromises = [ 
     youEmployerData.getEmployerPrograms($scope.employerId).$promise, 
     youEmployerData.getWorksites($scope.employerId).$promise 
    ]; 
+0

謝謝 - 這固定它:) – 99823