0
我试图了解$ q,我写代码从wordpress api v2获取数据: 与$ http服务!它工作正常,但我明白这个代码错误,因为 我需要异步代码。所以请帮助我提高我的代码
myApp.controller('mainCtrl',['$scope','$http',function($scope,$http){
$scope.myposts = [];
function sort(){
$http.get('http://www.ipets.co.il/jobs/wp-json/wp/v2/posts').success(function(posts){
angular.forEach(posts , function(post,key){
$http.get('http://www.ipets.co.il/jobs/wp-json/wp/v2/media/'+post.featured_media
).success(function(media){
var postObj = {}
postObj.id = post.id
postObj.title = post.title.rendered
postObj.image = media.source_url
$scope.myposts.push(postObj)
// console.log($scope.myposts)
})
})
})
}
sort();
console.log($scope.myposts)
}]);
结果(控制台):
[ ]
0: Object:
id:19
image:"http://ipets.co.il/jobs/wp-content/uploads/2016/07/588.jpg"
title:"דרוש מלצר/ית לאולם ארועים ״נסיה״"
1: Object:
id:14
image:url
title:title
我的结果也很好!但我知道我的方式是错误的 ,因为当我打电话“console.log($ scope.myposts)”,是不完成获取所有数据。
我明白从互联网搜索,我需要使用$ q服务。 但我不知道它将如何在我的代码。 有人可以帮我吗?!
它做工精细!谢谢。我有两个问题:1)当你使用=>?时你的意思是什么? ... 2)$ q.all?!然后让” ?对不起,我认为你使用jquery,如果你可以解释你的方式,它会帮助我更多 –
这不是jQuery ar所有...看看ecmascript6,箭头函数,块范围声明,承诺...如果你想留es5你需要一个transpirer或更改让var,带函数的箭头函数(小心函数范围) – Hitmands
感谢您hitmands我学习更多关于es6的东西,好的,我将这段代码转换为es5,它工作正常,请有人能解释我$ q.all在这段代码中做了什么? –