gpt4 book ai didi

javascript - AngularJS forEach 无法处理 $http 响应

转载 作者:行者123 更新时间:2023-11-30 21:10:21 25 4
gpt4 key购买 nike

获取响应中的值:

[{
"Pf": "something1",
"label": ""
}, {
"Pf": "something1",
"label": ""
}]

JS

$scope.display = false;

$scope.getPanel = $http({
mode: 'cors',
method: 'GET',
url: '/url/',
headers: {
'Content-Type': 'application/json'
}
}).success(function(response) {

$scope.original = function() {

angular.forEach(response, function(value, key) {
if (value == "something1") {
dispaly = false;
} else if (value == "something2") {
display = false;
} else {
display = true;
}
});
return display;
};
});

HTML

<td>
<img src="image.png" uib-tooltip="{{status}}" ng-show="original()"/>
</td>

没有从响应中获取键和值

最佳答案

首先,您在 if display 中写 dispaly 而不是 display 确实有错误。

其次,angular foreach 第二个参数是一个将集合中的迭代器作为第一个参数的函数。在这里,您的集合由两个对象组成,因此在每次迭代中,值将是一个对象,例如:

{
"Pf": "something1",
"label": ""
}

所以,如果你想测试它是否等于“something1”,你必须将它与 value.pf 而不是 value 进行比较。

您还需要调用 response.data,因为 response 是一个存储有关您的请求答案的不同信息的结构。

最后,我建议您将值显示存储在您的范围内并将其绑定(bind)到 ng-show 指令,如下所示:

JS

$scope.display = false;

$http({
mode: 'cors',
method: 'GET',
url: '/url/',
headers: {
'Content-Type': 'application/json'
}
}).success(function(response) {

angular.forEach(response.data, function(value, key) {
if (value.pf == "something1") {
$scope.display= false;
} else if (value.pf == "something2") {
display = false;
} else {
display = true;
}
});
});

HTML

<td>
<img src="image.png" uib-tooltip="{{status}}" ng-show="display"/>
</td>

希望对您有所帮助!

关于javascript - AngularJS forEach 无法处理 $http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46214512/

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