繁体   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