在控制器中获取两次角度工厂的数据

时间:2016-05-30 16:03:57

标签: javascript angularjs

我正在使用工厂向社交媒体API发出GET请求。这工作正常,并在视图中显示数据,但是当我在控制台中检查时,它会为每个GET个请求提出两次GET请求。这意味着有时它会在前端显示两次数据。

任何人都可以解释为什么会这样吗?我想这可能与我实施工厂的方式有关。

见下面的代码。如果还有其他事情需要澄清,请告诉我。谢谢!

工厂

app.factory('socialMedia', ['$http', function($http) {
    return {
      fetchFlickr: function() {
        var self = this;
        return $http.jsonp("https://api.flickr.com/services/feeds/photos_public.gne?tags=sonymusic&tagmode=alll&format=json&jsoncallback=JSON_CALLBACK");
      },

      fetchTwitter: function() {
        return $http({
          url: 'get_tweets.php',
          method: 'GET'
        })
      }
    }
  }
]);

App控制器

app.controller("testCtrl", ["$routeParams", "truncateFilter","socialMedia", function ($routeParams, socialMedia) {

    testCtrl = this;
    this.twitterPosts = [];
    this.flickrPosts = [];
    this.loading = true;

    socialMedia.fetchTwitter().success(function(data){
        console.log(data)
        for(var i = 0; i < data.length; i++){
            testCtrl.twitterPosts.push(data[i]);
        }        
    })
    .error(function () {
        test.loading = false;
        test.error = true;
    });

     //call to get the data from Flickr
    socialMedia.fetchFlickr().success(function (data) {
        var x = data.items.length;
        for(var i = 0; i < x; i++){
            test.flickrPosts.push(data.items[i]);
        }
        test.loading = false;
    })
    .error(function () {
        test.loading = false;
        test.error = true;
    });
}]);

0 个答案:

没有答案