Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS forEach不处理$http响应_Javascript_Html_Angularjs - Fatal编程技术网

Javascript AngularJS forEach不处理$http响应

Javascript AngularJS forEach不处理$http响应,javascript,html,angularjs,Javascript,Html,Angularjs,获取响应中的值,如下所示: [{ "Pf": "something1", "label": "" }, { "Pf": "something1", "label": "" }] JS HTML 未从响应中获取键和值请注意,显示在每个循环中被覆盖。确保你的逻辑是正确的。当display是$scope变量时,您需要使用$scope.display而不是display来访问此参数。您的代码应该如下所示: 看法 -->首先,如果显示写入dispaly而不是display,则会出现错

获取响应中的值,如下所示:

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


未从响应中获取键和值

请注意,
显示
在每个循环中被覆盖。确保你的逻辑是正确的。当
display
$scope
变量时,您需要使用
$scope.display
而不是
display
来访问此参数。您的代码应该如下所示:

看法
-->

首先,如果显示写入dispaly而不是display,则会出现错误

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

{
  "Pf": "something1",
  "label": ""
}
所以,如果您想测试它是否等于“something1”,您必须将它与value.pf而不是value进行比较

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

最后,我建议您将显示的值存储在范围中,并将其绑定到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>


希望有帮助

可能不相关,但您有一个输入错误
dispaly=falsem没有从responseAny feedback ASM获取值和密钥?获取response.data时未定义。因此,您的http请求配置不正确。。。。我想你的api不是以“/url/”结尾的。。。。如果url不存在,将永远不会定义响应。更重要的是,模式:'cors'不作为$http方法的参数存在。。。如果有可能,请确保通过向web服务器方法中添加日志来调用api。如果未到达,则必须在此处检查配置:$scope.display;得到overwrite@ASM对不起,我不明白你的意思。请解释您的问题。我没有得到正确的值。我得到的是对象的值,而不是我想要对象的单个值response@ASM使用chrome/firefox开发工具查看您的对象,查看您是否从request@ASM我在代码中添加了一个完整的工作示例。请检查演示plnkr并将其与您的解决方案进行比较。
var app = angular.module('plunker', []);

app.controller('ApplicationController', function($scope, $http) {

  $scope.display = false;

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


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

    console.log($scope.display);
  };
}); 
{
  "Pf": "something1",
  "label": ""
}
$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;
      }
    });
});
<td>
    <img src="image.png" uib-tooltip="{{status}}" ng-show="display"/>
</td>