从角度js中的复杂JSON数组中获取值

时间:2015-11-18 06:43:35

标签: javascript json angularjs

我有JSON数组看起来像这样

{
    "-K3OFVYXVUiT-oYXFmgX": {
        "id": 4658,
        "username": "shamon"
    },
    "-K3OFZAt9Qyy9v6z-XYQ": {
        "id": 9891,
        "username": "manu"
    },
    "-K3OFafyCi6g9UhdR2mA": {
        "id": 7219,
        "username": "hari"
    },
    "-K3OGYGGry3pU8_Qkjg_": {
        "id": 8028,
        "username": "shamonsha"
    }
}

我想在<ul>列表中显示用户名

<ul>
    <li ng-repeat="user in userlist">{{user.username}}</li>
<ul>

但我会得到空的结果

更新

这是我的完整代码,它是一个响应表单的firebase网址,问题是我会得到console.log($scope.userlist)但它不会在html列表中更新

.controller('chatCtrl',function($scope){
    messagesRef= new Firebase(chaturl+'userlist');
        messagesRef.on('value', function (snapshot) {
                  var  msg= snapshot.val();
               $scope.userlist=JSON.stringify(msg);
               console.log($scope.userlist);
            });
});

1 个答案:

答案 0 :(得分:1)

您可以使用(key, value) in expression

<ul>
    <li ng-repeat="(key, value) in userlist">
        {{value.username}}
    </li>
<ul>

DEMO

编辑:需要使用$scope.$apply(fn)以便更新更改。

.controller('chatCtrl',function($scope){
    messagesRef= new Firebase(chaturl+'userlist');
    messagesRef.on('value', function (snapshot) {
              var  msg= snapshot.val();
              $scope.$apply(function () { 
                   $scope.userlist=JSON.stringify(msg); 
              });
        });
});