如何获取$http.get()的url's值以在函数中使用
How to get the url's value of $http.get() to use inside the function?
嗨,我用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) {
res.data.error='';
list.push(res.data);
}).catch(function (res) {
res.data.error='file not found';
});
}
return list;
}
return {
getLists: getLists
};
]);
在一个html页面,我必须显示在Json文件中发现的数据<tr ng-repeat="d in list" ng-show="d.error == ''">
<td>{{d.nm}}</td>
<td>{{d.cty}}</td>
<td>{{d.hse}}</td>
<td>{{d.yrs}}</td>
</tr>
<tr ng-repeat="d in list"ng-show="d.error != ''">
<td>File not found</td></tr>
所以,如果没有找到URL或有一个错误,我应该显示一行,我把错误。我现在想要的是tp指定未找到的Url。例如,如果找不到url1,我想放一条消息url1+" is not found"我试着在我的工厂做这件事
res.data.error= tab[i]+' file not found';
和在我的HTML中:
<tr ng-repeat="d in list"ng-show="d.error != ''">
<td>{{d.error}}</td></tr>
但是什么都没有出现,当我使用警告来调试
时alert(tab[i]+' file not found');
我得到'未定义的文件未找到'。有办法解决我的问题吗?
使用响应对象,res.config.url
包含被击中的url。但是,由于url不存在,将执行.catch block
而不是.then block
$http.get(tab[i])
.catch(function(res) {
res.data = { error : res.config.url +' file not found' };
})
同样,您将不得不使调用代码异步使用它,现在您正在尝试以同步方式访问,这将永远不会工作…
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- iFrame url更改时执行函数
- 在javascript中使用split函数希望在页面加载时拆分url
- Reactjs URL.createObjectURL不是函数
- 将重定向URL链接添加到JS函数
- 如何使用特定的javascript函数创建一个url,以便在加载页面时运行
- 如何创建背景图像列表'URL,并使用jQuery在单击函数时应用它们
- 更新URL时使用Javascript函数显示日期
- ajax外部url加载完成后调用jquery函数
- 为什么html src属性中的相对url是因为Javascript函数中的完整路径
- 获取带有URL的字符串的Javascript函数
- 未捕获的类型错误:$(..).modal不是具有远程url的函数
- 如何在 javascript 中的 url 回调函数中传递参数
- 管理 AJAX 中开放函数的 URL 的规则
- 可用于重定向到任何 URL 的 JavaScript 函数
- JavaScript 函数,用于使用该参数创建 URL
- jquery.get函数url参数
- JavaScript函数URL中PHP变量的问题
- 为防止ie缓存,在Jquery函数url后添加唯一值