AngularJs创建表

时间:2015-12-17 09:32:49

标签: html angularjs

所以我想创建一个与此类似的表

enter image description here

使用此数据

$scope.data = [
   {question : 1, answer : a},
   {question : 1, answer : b},
   {question : 1, answer : c},
   {question : 2, answer : b},
   {question : 2, answer : a},
   {question : 3, answer : c},
]

到目前为止,这就是我所拥有的

<tbody ng-repeat="(key,value) in data" ng-init="current=null">
  <tr>
    <td><span ng-if="current != value.question">{{value.question}}</span></td>
    <td>{{value.answer}}</td>
    <td class="hidden">{{ current = value.question }}</td>
  </tr>
</tbody>
如果你能提供帮助并开导我,那就很高兴谢谢你!

2 个答案:

答案 0 :(得分:1)

数据中包含的是一个对象数组,您使用的语法循环对象而不是ng-repeat中的数组。

就这样改变:

<table>
  <thead>
    <th>Question#</th>
    <th>Answer#</th>
  </thead>
  <tbody ng-repeat="value in data" >
    <tr>
      <td><span>{{value.question}}</span></td>
      <td>{{value.answer}}</td>

    </tr>
  </tbody>
</table>

这是一个fiddle,可以让你继续前进。

答案 1 :(得分:1)

首先修改$scope.data ::提供""密钥。 这是DEMO

$scope.data = [
   {"question" : 1, "answer" : "a"},
   {"question" : 1, "answer" : "b"},
   {"question" : 1, "answer" : "c"},
   {"question" : 2, "answer" : "b"},
   {"question" : 2, "answer" : "a"},
   {"question" : 3, "answer" : "c"}
]

查看: 而不是使用ng-if使用ng-show来维护表的结构。

<table>
 <tbody ng-repeat="(key,value) in data">
  <tr>
    <td ng-show="data[key-1].question != value.question">{{value.question}}</td>
    <td>{{value.answer}}</td>
    <td class="hidden">{{ current = value.question }}</td>
  </tr>
 </tbody>
</table>