当前位置: 首页 > 面试题库 >

使用angularjs和ng-repeat从JSON数据创建表

于正志
2023-03-14
问题内容

我将以下数据作为JSON:

{
  "Workout1": {
    "Name": "First",
    "Rounds": [
      {
        "Exercises": [
          {
            "Name": "Exercise1",
            "Repeat": 10
          },
          {
            "Name": "Exercise2",
            "Repeat": 10
          },
          {
            "Name": "Exercise3",
            "Repeat": 10
          }
        ]
      },
      {
        "Exercises": [
          {
            "Name": "Exercise1",
            "Repeat": 20
          },
          {
            "Name": "Exercise2",
            "Repeat": 20
          },
          {
            "Name": "Exercise3",
            "Repeat": 20
          }
        ]
      },
      {
        "Exercises": [
          {
            "Name": "Exercise1",
            "Repeat": 30
          },
          {
            "Name": "Exercise2",
            "Repeat": 30
          },
          {
            "Name": "Exercise3",
            "Repeat": 30
          }
        ]
      }
    ]
  }
}

我想将其显示为带有angularjs和ng-repeat的html表。这样我得到下表:

<table class="table">
    <tr>
        <th>Round1</th>
        <th>Round2</th>
        <th>Round3</th>
    </tr>
    <tr>
        <td>10 Exercise1</td>
        <td>20 Exercise1</td>
        <td>30 Exercise1</td>
    </tr>
    <tr>
        <td>10 Exercise2</td>
        <td>20 Exercise2</td>
        <td>30 Exercise2</td>
    </tr>
    <tr>
        <td>10 Exercise3</td>
        <td>20 Exercise3</td>
        <td>30 Exercise3</td>
    </tr>
</table>

用于表格预览:http :
//jsfiddle.net/54pD8/

我的问题是html表是基于行的。我可以通过回合,然后通过练习来进行ng-
repeat的迭代,但是要创建表格,我总是需要每个练习的第一个,然后是每个练习的第二个,依此类推。

有人可以帮我解决这个问题吗?

ps。如果您有一个更好的json数据布局的想法,欢迎您提出建议,我是json(和angularjs)的新手。


问题答案:

您正在寻找的解决方案在Angular的官方教程中。在本教程中,将使用Angulars $ http
service
从JSON文件加载电话。在下面的代码中,我们使用 $
http.get
加载保存在phones目录中的phones.json文件:

var phonecatApp = angular.module('phonecatApp', []);   
phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
 $http.get('phones/phones.json').success(function(data) {
$scope.phones = data;
}); 
$scope.orderProp = 'age';
});

然后,我们遍历电话:

<table>
  <tbody ng-repeat="i in phones">
    <tr><td>{{i.name}}</td><td>{{$index}}</td></tr>
    <tr ng-repeat="e in i.details">
       <td>{{$index}}</td>
       <td>{{e.foo}}</td>
       <td>{{e.bar}}</td></tr>
  </tbody>
</table>


 类似资料:
  • 问题内容: 我正在尝试将$ sce.trustAsHtml()与ng- repeat中的对象属性一起使用。结果是HTML完全空白。不过,使用ngSanitize可以正确输出HTML。 顺便说一下,我正在使用AngularJS v1.3.0-beta.3。不知道是否有错误或我做错了什么。 问题答案: 您不能在表达式中使用(除非是的属性),因为表达式是在的上下文中求值的。 最干净的方法是使用。 第二种

  • 问题内容: 我正在为将来的项目评估angularjs。我需要做的一件事情是通过选择适当的“页面”无线电输入来显示“频道”信息的不同页面。此外,还可以从一组“页面集”无线电输入中选择页面按钮的范围。 下面的工作示例具有一组32个通道,通过“设置”和“页面”无线电输入的组合选择了可见的通道组,总共提供2 * 4页,每个通道4个通道。 我的问题是如何使用创建页面/页面集单选输入。我已经尝试过以下方法:

  • 我有一个动态JSON,其中包含名称列表,它还包含子名称作为子集。如何使用angularJS ng重复在超文本标记语言UI中显示它 示例动态JSON是 注意:JSON是基于请求生成的。子数组是可选的,它可以包含长度“n”

  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7

  • 问题内容: 我使用ng-repeat在表中动态添加来自数组的行。 现在,我想获取每行所有总和的总和(group.sum * group.perc / 100.0)。我需要一个变量,因为我需要此值进行进一步的计算。谢谢 的HTML 脚本 问题答案: 创建一个过滤器: 使用$ filter服务: 在您的HTML中使用它:

  • 问题内容: 我正在尝试使用AngularJS 1.1.5的ng- repeat从选择框开始使用预填充选项。相反,选择始终始于未选择任何内容。它还有一个空选项,我不想要。我认为没有选择任何东西都会带来副作用。 我可以使用ng-options代替ng-repeat来工作,但在这种情况下我想使用ng- repeat。尽管我缩小的示例没有显示出来,但我也想设置每个选项的title属性,据我所知,没有办法使