如何在html angular

时间:2016-05-16 15:39:59

标签: javascript html angularjs json

我正在尝试将一个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但它不起作用。 有人能帮我吗? 谢谢!

2 个答案:

答案 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

您的数据看起来很奇怪,我认为问题在于帖子有多个状态。