Angularjs-$q.所有倍数资源问题

Angularjs-$q.所有倍数资源问题,angularjs,Angularjs,你能帮我解决这个问题吗?如何迭代结果的元素?forEach(results.first,function(value,key){//anything}也不起作用 var AppControllers = angular.module('AppControllers', ['AppConfig']); AppControllers.controller('WorkItemController', ['$scope', '$q', 'IStatus', 'SRStatus', functio

你能帮我解决这个问题吗?如何迭代结果的元素?forEach(results.first,function(value,key){//anything}也不起作用

var AppControllers = angular.module('AppControllers', ['AppConfig']);

AppControllers.controller('WorkItemController', ['$scope', '$q', 'IStatus', 'SRStatus',
   function($scope, $q, IStatus, SRStatus) {

   $q.all({
     first: IStatus.get(),
     second: SRStatus.get()
   }).then(function(results) {

   console.log(results);
   //return Object { first=[0], second=[0]}

   console.log(results.first);
   //return
   //[]
   //0 Resource { Displayable=true, Changeable=true, Open=true, mais...}
   //1 Resource { Displayable=true, Changeable=true, Open=true, mais...}
   //2 Resource { Displayable=false, Changeable=false, Open=false, mais...}
   //3 Resource { Displayable=true, Changeable=false, Open=true, mais...}
   //$promise Object { $$state={...}, then=function(), catch=function(), mais...}
   //$resolved true

   console.log(results.first.length);
   //return 0

   console.log(results.first[1]);
   //return undefined

  });
}]);
$q.all()
在承诺上工作。看起来
IStatus
是一个
$resource
,这意味着您需要使用
get()。$promise
用于
$q.all()
才能正常工作。目前,它看起来像是
$q.all()
正在立即解析,因此当您检查资源的值时,它仍然是空的

$q.all({
    first: IStatus.get().$promise,
    second: SRStatus.get().$promise
}).then(function(results) {
    // ...
    console.log(results.first); // should contain data
});
$q.all()
在承诺上工作。看起来
IStatus
是一个
$resource
,这意味着您需要使用
get()。$promise
用于
$q.all()
才能正常工作。目前,它看起来像是
$q.all()
正在立即解析,因此当您检查资源的值时,它仍然是空的

$q.all({
    first: IStatus.get().$promise,
    second: SRStatus.get().$promise
}).then(function(results) {
    // ...
    console.log(results.first); // should contain data
});