如何使用angular js在json中获取对象内部的对象

时间:2015-06-04 07:30:35

标签: html angularjs

这是我的json文件。

{
"countries":[
    {
        "country": "India",
        "cities" : [{
            "name": "Bangalore",
            "rank": "40"
        },
        {   "name": "Mumbai",
            "rank": "32"
        },
        {   "name": "Kolkata",
            "rank": "54"
        },
        {   "name": "Chennai",
            "rank": "42"
        }]
    },      
    {   "country": "China",
        "cities":[{"name": "Guangzhou",
            "rank": "111"
        },
        {   "name": "Fuzhou",
            "rank": "21"
        },
        {   "name": "Beijing",
            "rank": "90"
        },
        {   "name": "Baotou",
            "rank": "23"
        }]
    }
]}

我想显示html表中所有城市的所有名称和等级, 但我无法做到这一点。 Angular js代码是:

app.controller('cityCtrl1', function($scope, $http){
$http.get("http://localhost:8080/Angular%20Examples/angularCountries/app/json/countriesToCities1.json").success(function(data){
    $scope.cities  = data.countries;
}); 

});

Html代码为:

    <tr ng-repeat="city in cities | filter: selectName1">
        <div ng-repeat="details in city.cities">
            <td> {{details.name}} </td>
            <td> {{details.rank}}</td>
        </div>
   </tr>

我可以更改控制器文件中的代码以获取数据,但不确定它是否有效。

2 个答案:

答案 0 :(得分:1)

不允许在tr内部使用div(不能正常工作) - 请检查<div> into a <tr>: is it correct?

所以我改变了格式 -

<ul class="table" ng-repeat="country in cities.countries">
   <li class="city-row" ng-repeat="city in country.cities">
      <span class="city-name">{{city.name}}</span>      
      <span class="city-count">{{city.rank}}</span>
   </li>
</ul>

我创建了工作示例 - http://plnkr.co/edit/1GTqNPcfigd9XRaAy0vg

应用您自己的CSS以表格格式显示它。

答案 1 :(得分:0)

你要做的是,引用city.states,但是当状态不是json的对象时......将它改为city.cities

<tr ng-repeat="city in cities | filter: selectName1">
        <div ng-repeat="details in city.cities">
            <td> {{details.name}} </td>
            <td> {{details.rank}}</td>
        </div>
   </tr>