我无法从循环中重复数据(这是不准确的,数据应该是唯一的)。我认为问题是由于对承诺的实施/理解不佳。
var posts = PostsData.getPosts();
$scope.$watch($scope.active, function() {
$timeout(function() {
var markers = [];
for (var key in posts) {
var post = posts[key];
if (posts.hasOwnProperty(key) && posts[key]!=null) {
var p = $q.defer();
p = gf.get(key).then(function(location) {
console.log(post.title)
return ({
idKey: key,
title: post.title,
coords: {
latitude: location[0],
longitude: location[1]
}
});
});
markers.push(p);
}
}
$q.all(markers).then(function(markers) {
$scope.markers = markers;
});
});
})
}
$scope.markers 填充了重复的 post.title 数据。任何帮助将不胜感激。我是编程新手,所以如果我的问题看起来很简单,我深表歉意。