AngularJS $ http响应数据结构各不相同

时间:2015-02-26 06:34:42

标签: angularjs

我在angularjs中进行$ http调用

  url="data/someJson.json";
  $http.get(url).then(function(data){
      var requiredContent = data.requiredContent;// Case 1
      var requiredContent = data.data.requiredContent; // Case 2
    });

someJson的内容为{"requiredContent": {"a":"b"}};

如上所示,获取不同级别的数据是否有任何特殊原因?在某些情况下,我获得数据,如案例1和其他情况,我得到的情况与情况2一样。我不知道这种行为的原因。请帮助我理解这种行为。

1 个答案:

答案 0 :(得分:3)

我认为您正在混合then承诺的回调success$http。请查看以下plunker

这些回调之间的区别在于参数。使用一个参数调用then方法,即表示响应的对象。然而,成功'使用4个参数调用方法:data, status, headers, config

这意味着如果您使用then回调,则必须显式获取第一个参数的data属性以获取响应数据。如果您使用success回调,则响应数据将直接存储在第一个参数中。

Here是角度文档相关部分的链接。另请查看第二个示例下方的段落。