gpt4 book ai didi

javascript - 如何获取 $http.get() 的 url 值以在函数内部使用?

转载 作者:行者123 更新时间:2023-11-27 22:37:25 25 4
gpt4 key购买 nike

您好,我使用 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><br/>
<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+“未找到”我尝试在我的工厂这样做

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' };
})

此外,您还必须使调用代码异步使用它,现在您正尝试以同步方式访问,这永远不会工作...

关于javascript - 如何获取 $http.get() 的 url 值以在函数内部使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38994922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com