Angularjs-$q.所有倍数资源问题
你能帮我解决这个问题吗?如何迭代结果的元素?forEach(results.first,function(value,key){//anything}也不起作用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
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
});