Javascript 如何获取url';要在函数中使用的$http.get()的值?
您好,我使用AngularJS解析了三个不同的web服务:以下是我的代码:Javascript 如何获取url';要在函数中使用的$http.get()的值?,javascript,angularjs,Javascript,Angularjs,您好,我使用AngularJS解析了三个不同的web服务:以下是我的代码: app.factory('myapp', ['$http', function($http) { function getLists() { var tab = ['url1', 'url2', 'url3']; var list = []; for(i = 0; i < tab.length; i++) { $http.get(tab[i]) .then(function(res
app.factory('myapp', ['$http', function($http) {
function getLists() {
var tab = ['url1', 'url2', 'url3'];
var list = [];
for(i = 0; i < tab.length; i++) {
$http.get(tab[i])
.then(function(res) {
res.data.error='';
list.push(res.data);
}).catch(function (res) {
res.data.error='file not found';
});
}
return list;
}
return {
getLists: getLists
};
]);
在我的html中:
<tr ng-repeat="d in list"ng-show="d.error != ''">
<td>{{d.error}}</td></tr>
我得到“未找到未定义的文件”。
有办法解决我的问题吗?使用响应对象,
res.config.url
包含被命中的url。
但是,由于url不存在,将执行.catch块
,而不是
$http.get(tab[i])
.catch(function(res) {
res.data = { error : res.config.url +' file not found' };
})
此外,您还必须让调用代码异步使用它,现在您正试图以同步方式访问它,这永远不会起作用…AngularJS默认是异步的。不能只在方法getLists()
中返回数组,它永远不会工作。相反,您必须使用回调。解释一下。祝你好运谢谢你@ShadowWizard帮助了我!
alert(tab[i]+' file not found');
$http.get(tab[i])
.catch(function(res) {
res.data = { error : res.config.url +' file not found' };
})