javascript - AngularJs 使用来自自定义 Json 的 ng-repeat 创建表

标签 javascript html angularjs html-table angularjs-ng-repeat

我想创建 html 表格。我使用 AngularJs 指令 - ng-repeat。我有从服务器加载的数据。数据类型为文本/json。我的Json结构如下

[  
   {  
      "branch":"wdads",
      "name":"STANDART",
      "Tags":[  

      ],
      "Rooms":[  
         {  
            "roomNo":"11",
            "branch":"wdads",
            "Schedule":[  
               {  
                  "id":"",
                  "status":"free",
                  "currentDate":"2015-10-31T20:00:00.000Z"
               },
               {  
                  "id":"",
                  "status":"free",
                  "currentDate":"2015-10-31T20:00:00.000Z"
               }
            ]
         }
      ]
   },
   {  
      "branch":"wdads",
      "name":"VIP",
      "Tags":[  

      ],
      "Rooms":[  
         {  
            "roomNo":"1",
            "branch":"wdads",
            "Schedule":[  
               {  
                  "id":"",
                  "status":"free",
                  "currentDate":"2015-12-29T20:00:00.000Z"
               },
               {  
                  "id":"",
                  "status":"free",
                  "currentDate":"2015-12-29T20:00:00.000Z"
               }
            ]
         },
         {  
            "roomNo":"2",
            "branch":"wdads",
            "Schedule":[  
               {  
                  "id":"",
                  "status":"free",
                  "currentDate":"2015-12-29T20:00:00.000Z"
               },
               {  
                  "id":"",
                  "status":"free",
                  "currentDate":"2015-12-29T20:00:00.000Z"
               }
            ]
         }
      ]
   }
] 

我正在尝试创建表体,但它不起作用。我没有结果。

 <tbody>
            <div ng-repeat="caterory in categories">
              <tr>{{caterory.name}}<tr>
              <tr ng-repeat="room in caterory.Rooms">
                <td>{{room.roomNo}}</td>
                <td ng-repeat="schedule in room.Schedule">{{schedule.status}}</td>
              </tr>
            </div>
          </tbody>

最佳答案

基本上你写的html是无效的html。

你不能有 div元素直接在里面tabletbody , thead , tfoot , tr元素,如果您尝试这样做,那么该 HTML 将被视为无效的 html。

您可以在 th 中包含该元素/td表的元素。基本上,这些元素用于在表格上显示数据。

要解决您的问题,您需要做几件事。

  1. 你应该把ng-repeattbody ,并重复 tbody表多次。
  2. 同时显示来自 tr 的表行数据你应该使用的标签 td元素。由于您直接使用 tr应该改为<tr><td ng-bind="$first ?caterory.name : ''"></td><tr>

标记

<tbody ng-repeat="caterory in categories">
    <tr ng-repeat="room in caterory.Rooms">
      <td ng-bind="$first ?caterory.name : ''"></td>
      <td>{{room.roomNo}}</td>
      <td ng-repeat="schedule in room.Schedule">{{schedule.status}}</td>
    </tr>
</tbody>

这里有更详细的答案How to structure html while using table .

Working Plunkr

关于javascript - AngularJs 使用来自自定义 Json 的 ng-repeat 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33981547/

相关文章:

angularjs ng-click 默默地吃错误

javascript - 使用路由时如何将参数传递给 Controller ​​?

javascript - 将数据从 Node 发送到 Angular 以在 ng-repeat 中使用的正确方法。

javascript - 只订阅一次多个 FormControl

javascript - 单击 JavaScript 更改按钮颜色

javascript - 如何在 NX 项目中使用 es6 将 jest 与 node_modules 一起使用

javascript - 覆盖 html 表格样式 table-layout-fixed

java - 为什么我的 CSS 在 Java 中不能正常工作?

javascript - 用图像替换轮播指示器

javascript - 如何使用 javascript 为 fontawesome 图标着色?