2016-03-01 55 views
0

Angular相当新颖,多年来一直用于ASP/MVC/C#/ Jquery,这有点像学习曲线。但是,我认为应该很简单,而且根据我从其他框架获得的知识不能按预期工作。使用Angular显示来自json响应的特定值

所以我有一个GET请求返回这样数据的API控制器:

{"user":{"FirstName":"John","LastName":"Smith","EmailAddress":"[email protected]"}} 

模块:

(function() { 
"use strict"; 
//Getting the existing module 
angular.module("appName") 
    .controller("userDataController", function($scope, $http) { 
     $http.get("/api/user") 
      .then(function (response) { 
       //Example response 
       //{"user":{"FirstName":"John","LastName":"Smith","EmailAddress":"[email protected]"}} 
       $scope.userData = response.data; 
      }); 
    }); 
})(); 

如果我输出在我看来{{userData}}我得到的字符串数据显示,据我了解范围是给予变量命名。

但是,我似乎不能显示个人数据,例如:名字。

我已经尝试过用户数据对象的ng重复,但是这并没有做任何事情,我也试过各种事情来显示名字或EmailAddress,但没有运气。我在做一些根本性错误?

+0

API是否返回数据的字符串化版本?如果是这样,请使用'JSON.parse(response.data)' – JanS

回答

1

假设它实际上是一个JSON对象:{{userData.user.FirstName}}

否则:

$scope.userData = angular.fromJson(response.data)

然后你仍然可以使用上面的代码。

+0

完成了这项工作,谢谢。虽然使用函数angular.fromJson来反序列化要传回的对象,但是会期望行为吗?在任何例子中都没有看到。猜猜我可能需要实际修复API控制器功能。 – Codesight

+0

只要您的API控制器实际返回一个Object,它确实不需要反序列化。这个字符串在几乎任何情况下都是无用的,所以不应该发送。 fromJson至少让你移动,直到它可以修复。 –

+0

现在修复它,所以至少我不必做fromJson函数,并可以使用{{userData.EmailAddress}}感谢澄清,如果我在一开始就做了正确的帮助,将有所帮助。 – Codesight

0

可能是响应是内容类型文本,而不是预期的JSON? 查看响应标题。

+0

响应类型是definetily json。内容类型:应用/ JSON; charset = utf-8 – Codesight