AngularJS显示复杂的Object

时间:2014-11-05 17:44:44

标签: javascript html json angularjs

我有以下JSON:

{
   "_id": "543e95d78a1cec2a38ed53ec",
   "result": {
      "CAR009": [
         {
            "name": "BMW"
         },
         {
            "name": "MERCEDES"
         }
      ],
      "BUS007": [
         {
            "name": "RENAULT"
         }
      ]
   }
}

我事先并不知道“CAR009”和“BUS007”仅供参考。

我希望它显示在我的HTML中:

CAR009:宝马,梅赛德斯

BUS008:RENAULT

控制器:

$http.get('http://localhost:3000/categories/api)
  .success(function (cars) {
       var categoArray = [];
       for (var key in cars.result) {
          var car = cars.result[key];
          for (var idx in car) {
             categoArray.push(car[idx].category_name);
          }
        }

        $scope.categories = categoArray;
    })
   .error(function (cars) {
      console.log(tags);
});

然后在我的 HTML 中:(但这不是我想要的)

<div ng-repeat="categorie in categories">
       <li>{{categorie}}
</div>

我存储在数组中,但我需要存储在对象

如何使用AngularJS更容易地显示它?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

假设categories具有以下结构:

    {
      "CAR009": [
         {
            "name": "BMW"
         },
         {
            "name": "MERCEDES"
         }
      ],
      "BUS007": [
         {
            "name": "RENAULT"
         }
      ]
   }

你想这样做:

<ul>
   <li ng-repeat="(key, cars) in categories">
       {{key}}: <span ng-repeat="car in cars">{{car.name}}{{!$last?', ':''}}</span>
   </li>
</ul>

Example

此外,您可能希望更改代码的这一部分:

$http.get('http://localhost:3000/categories/api')
  .success(function (cars) {
        $scope.categories = cars.result;
    })
   .error(function (cars) {
      console.log(tags);
});