AngularJS - 如何在JSON对象中绑定对象的数据

时间:2014-10-23 19:38:44

标签: json angularjs

使用附带的http帖子,我应该回到下面的JSON对象。我想在下面的JSON中获取LeagueDictionary数据并创建一个对象,这样我就可以在我的客户端的每个循环中使用它,但我无法理解如何在http调用中构造该代码。

{
    "Id": 0,
    "UserName": null,
    "NickName": null,
    "Email": "email@company.com",
    "Password": null,
    "Admin": false,
    "Validated": false,
    "Key": "oOE0QbOhjK17pNeKDPEFti5On27R3b",
    "LeagueDictionary": {
        "1": "League #1",
        "2": "League #2"
    }
}

使用此电话:

$scope.getLeagues = function() {
        $http({
            method: 'POST',
            url: 'http://xxxxxxxxxxxxxxxxxx',
            data: ???,
        })
    }

如果有人给我一个关于如何绑定JSON特定部分的数据的推动,我很感激帮助。我不确定如何剥离LeagueDictionary部分并从中创建一个对象。

2 个答案:

答案 0 :(得分:0)

您只需访问响应的LeagueDictionary属性,然后在ng-repeat中迭代该属性即可。显然,我并不确切知道你的示波器是什么样的,但这应该让你开始:

//JS
$http.post('/someUrl', { 'foo': 'bar' }).success(function(data) {
    myController.myModel.leagueDictionary = data.LeagueDictionary;
});

//HTML
<tr ng-repeat="(leagueNum, leagueName) in leagueDictionary">

答案 1 :(得分:0)

您可以设置一个获取数据的服务,这样您就可以从控制器中获取$http等内容。说...

app.factory('DataService', function ($http) {
  return {
    get: function () {
      return $http.get('data.json'); // post & url goes here
    }
  };
});

在您的控制器中,使用thenpromise解析后访问响应数据(catch()和finally()也可用)。

app.controller('MainCtrl', function ($scope, DataService) {
  DataService.get().then(function (response) {
    $scope.leagueDictionary = response.data.LeagueDictionary;
  });
});

相关的HTML模板将是

<body ng-controller="MainCtrl">
  <div ng-show="leagueDictionary">
    <span ng-repeat="(key,val) in leagueDictionary">
      {{ val }} <br>
    </span>
  </div>
</body>

使用您提供的数据

imgur

<小时/> 请参阅示例plunker http://plnkr.co/edit/j6bmmQ