0

我无法从循环中重复数据(这是不准确的,数据应该是唯一的)。我认为问题是由于对承诺的实施/理解不佳。

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 数据。任何帮助将不胜感激。我是编程新手,所以如果我的问题看起来很简单,我深表歉意。

4

1 回答 1

0

尝试替换:

var p = $q.defer();
p = gf.get(key).then(function(location) {
   ...
})

p = gf.get(key);

于 2016-03-22T00:07:57.350 回答