Angularjs 如何在工厂中发出多个http请求
我想知道我们是否可以使用工厂和控制器加载多个json文件 我在拉classifieds.json和myWords.json 我看到了前者的内容,但后者的内容没有显示出来 这就是我对合并它感到厌倦的原因。我已经对照json格式化程序检查了myWords.json的正确性,因此我确信它是正确的 我想,我做错了。如果你能指引我正确的方向,我将不胜感激Angularjs 如何在工厂中发出多个http请求,angularjs,Angularjs,我想知道我们是否可以使用工厂和控制器加载多个json文件 我在拉classifieds.json和myWords.json 我看到了前者的内容,但后者的内容没有显示出来 这就是我对合并它感到厌倦的原因。我已经对照json格式化程序检查了myWords.json的正确性,因此我确信它是正确的 我想,我做错了。如果你能指引我正确的方向,我将不胜感激 在这里,我为factory中的多个json调用添加了示例。为了从多个源获取数据,当前的方法是对每个数据源使用一个方法。 工厂: 控制器 如果您有两个
在这里,我为factory中的多个json调用添加了示例。为了从多个源获取数据,当前的方法是对每个数据源使用一个方法。
工厂: 控制器 如果您有两个以上的来源需要收集,您可以在工厂使用$q服务:
function getAllData() {
var source1 = $http.get('source1.json');
var source2 = $http.get('source2.json');
...
...
return $q.all([source1, source2, ...]);
}
只有在接收到所有数据并且您可以在控制器中获取数据时,才会解决此问题
别忘了在工厂函数依赖项中包含$q,这可能会对您有所帮助,感谢Kobi的指导;我一直在按照指示做,但毫无结果。
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;
}
function getAllData() {
var source1 = $http.get('source1.json');
var source2 = $http.get('source2.json');
...
...
return $q.all([source1, source2, ...]);
}