我有一个AngularJS变量var vm = this;
,其中包含一个大的JSON格式数据:
vm.data = {
"sites": [{
"siteName": "A",
"countries": [{
"country": "DE",
"servers": [{
"serverType": "master",
"URL": ""
},{
"serverType": "slave",
"URL": ""
}]
}]
},{
"siteName": "B",
"countries": [{
"country": "IT",
"servers": [{
"serverType": "master",
"URL": ""
},{
"serverType": "slave",
"URL": ""
}]
},{
"country": "NL",
"servers": [{
"serverType": "master",
"URL": ""
},{
"serverType": "slave",
"URL": ""
}]
}]
}]
};
我想把这些数据放在表格中
我使用“c”因为“控制器(我的控制器的名称)为c”。
<tr ng-repeat="site in c.data.sites">
<td>{{ site.siteName }}</td>
<td>{{ site.countries }}</td>
<td>{{ site.countries.name }}</td>
</tr>
第一个 td 完美运行,第二个显示国家/地区设置中包含的所有内容,最后一个不显示任何内容。
我尝试声明vm.data.sites.countries
,但失败了。
你能否对此有所了解?
答案 0 :(得分:2)
您的countries
是一个数组,因此如果您想列出每个国家/地区,您可以使用新循环访问国家/地区对象的每个名称(国家/地区对象的名称属性为country
) ng-repeat
)。
<tr ng-repeat="site in c.data.sites">
<td>{{ site.siteName }}</td>
<td>{{ site.countries }}</td>
<td>
<span ng-repeat="country in site.countries>
{{country.country}}
<span ng-if="!$last">, </span>
</span>
</td>
</tr>
答案 1 :(得分:1)
嗯,你并没有真正适当地引用你的密钥。
<tr ng-repeat="site in c.data.sites">
<td>{{ site.siteName }}</td>
<td>
<span ng-repeat="country in site.countries">
{{ country.country }}
<span ng-hide="$last">, </span>
</span>
</td>
</tr>