我正在尝试将一个JSON代码显示在html表中。我有这个JSON:
posts:[
{
"category":[],
"status":[]
},
{
"category":
[
{
"ID_post":"2",
"category":"5 Reasons",
"ID_cat":"1"
},
{
"ID_post":"2",
"category":"Advertising",
"ID_cat":"2"
}
],
"status":
[
{
"ID_post":"2",
"status":"Approved",
"ID_stat":"1",
"color":"red"
},
{
"ID_post":"2",
"status":"Placed",
"ID_stat":"2",
"color":"#1800fb"
}
]
}
]
我想将状态的颜色显示到html表中,如下所示:
<tr>
<th>Web Status</th>
</tr>
<tbody ng-repeat="post in posts | startFrom: start | limitTo: limit">
<tr>
<td>{{post.status}}</td>
</tr>
</tbody>
它在第二篇文章中返回这样的内容:
[{"ID_post":"2","status":"Approved","ID_stat":"1","color":"red"},{"ID_post":"2","status":"Placed","ID_stat":"2","color":"#1800fb"}]
但我需要每个帖子的颜色。我怎么才能得到它?我尝试使用post.status.color但它不起作用。 有人能帮我吗? 谢谢!
答案 0 :(得分:1)
如果要在表中显示 all 是每种状态的颜色,您可以采取的一种方法是在单独的数组中捕获“状态”数据,例如{{1} }。然后在HTML中循环遍历此数组:
$scope.statuses = posts[1].status
使用您当前的数据结构,<tbody ng-repeat="status in statuses| startFrom: start | limitTo: limit">
<tr>
<td>{{status.color}}</td>
</tr>
</tbody>
是一个包含两个元素的数组。 posts
直接循环遍历此数组中的每个元素。第一个元素ng-repeat
是一个具有两个属性为空数组的对象。因此,第一个posts[0]
为空。第二个元素{{post.status}}
是一个具有属性“category”和status的对象,每个元素都有填充的数组。使用第二个元素,posts[1]
将显示{{post.status}}
中的所有数据。
同样,如果你需要显示的只是每个状态的颜色,那么在单独的变量中捕获posts[1].status
是最容易的。如果需要显示类别数据以及状态数据,则可能需要将这两个数组合并为一个数组。请参阅此示例:In Angular, how do you loop through two arrays to populate a third?
答案 1 :(得分:0)
status是一个数组。
要访问定义索引所需的每种状态的颜色,例如:
post.status[0].color
您的数据看起来很奇怪,我认为问题在于帖子有多个状态。