簡體   English   中英

處理從Angular $ q.all返回的結果

[英]Handling Results Returned from Angular $q.all

我對如何處理從$ 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數組,而$scope.programs是一系列程序。

如果您有任何疑問或需要其他說明,請告訴我。

這是console.log(results)的屏幕截圖-看上去正確,結果[0]僅包含1個項目,結果1 ($ scope.worksites)-具有多個項目,唯一的問題是某些東西無法正常工作,因為$ scope.works認為它無法在屏幕上正確輸出,就像數組不正確一樣。 對不起-難以描述。

在此處輸入圖片說明

也許是因為您錯過了$ resource對象不是諾言的事實嗎? 您可以嘗試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM