如何在工厂中发出多个http请求

时间:2016-03-01 05:16:15

标签: angularjs

我想知道我们是否可以使用工厂和控制器加载多个json文件。

我拉了classifieds.json和myWords.json。

我看到前者的内容,但后者的内容没有显示

这是我累积它的方式。我已经检查了myWords.json对json格式化程序的适当性,所以我肯定知道它没事。

我想,我在这里做错了。如果你能引导我朝着正确的方向前进,我将不胜感激。

Factory

Controller

2 个答案:

答案 0 :(得分:1)

为了从多个来源获取数据,目前的方法是为每个数据源使用一种方法。

厂:

function getClassified() {
  return $http.get('data/classified.json');
}
function getMyWords() {
  return $http.get('data/myWords.json');
}

return {
  getClassified : getClassified,
  getMyWords : getMyWords
}

控制器

classifiedsFactory.getClassified().then(function(data) {
  $scope.classified = data;
};
classifiedsFactory.getMyWords().then(function(data) {
  $scope.myWords = data;
}

如果您想要聚集两个以上的来源,您可以在工厂中使用$ q服务:

function getAllData() {
  var source1 = $http.get('source1.json');
  var source2 = $http.get('source2.json');
  ...
  ...
  return $q.all([source1, source2, ...]);
}

只有在收到所有数据并且您可以在控制器中获取数据后,才会解决此问题。

不要忘记在工厂函数依赖项中包含$ q

答案 1 :(得分:0)

Demo link

Hi Ashim09,

这里我在工厂添加了多个json调用的示例..