Angular $ http - 如何访问JSON结果值

时间:2016-02-09 19:28:34

标签: javascript angularjs json

我有一个$http请求,它返回用户的对象。

$scope.profile = $http.get('api/users/' + $stateParams.userId).success(function(data) {
    console.log(data);
});

我如何实际将user.username分配给$scope.profileUsername

从控制台复制......

    Object
__v: 0
_id: "56a1832a36dc3d0e00c7aa3f"
aboutme: "<p>Im the Boss.</p>"
additionalProvidersData: Object
county: "waterford"
created: "2016-01-22T01:17:30.863Z"
displayName: "Chris"
firstName: "Chris"
gender: "male"
imageURL: "/modules/users/client/img/profile/saveme-placeholder.png"
profileImageURL: "../modules/users/client/img/profile/avatars/2/45.png"
provider: "local"
roles: Array[2]
updated: "2016-02-09T02:55:38.744Z"
username: "abcdef"
__proto__: Object

2 个答案:

答案 0 :(得分:2)

试试这个。

$http.get('api/users/' + $stateParams.userId).success(function(data) {
    $scope.profileUsername = data.username;
});

$ http方法的返回值是promises,而不是数据。 这是由于它们的异步性质以及您传递的函数,因为只有在HTTP请求返回后才会执行回调,因此您要对数据执行任何操作,您必须在回调函数中执行此操作。

编辑: 你也可以这样做

$http.get('api/users/' + $stateParams.userId).success(function(data) {
    $scope.profile = data;
});

这样你可以将所有数据放在一个变量中,假设你需要全部数据。 在模板中,您只需使用点表示法(profile.username)访问属性。

答案 1 :(得分:0)

应该是

 $http.get('api/users/' + $stateParams.userId).success(function(data) {
            $scope.profile=data;
        });

应该可以在{{profile.username}}

等观看中访问它