我正在使用工厂向社交媒体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;
});
}]);