获取响应中的值:
[{
"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/