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

如果使用angular js具有值列表,如何在一列中生成嵌套表?

戚浩淼
2023-03-14
问题内容

index.js

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';

  $scope.data =[{"Id":1,"Title":"en-US","Description":"UnitedStates","MyValues":[{"Id":100,"Value":"Save"}]},
{"Id":1,"Title":"en-UK","Description":"UK","MyValues":[{"Id":102,"Value":"Delete"}]}]
  $scope.cols = Object.keys($scope.data[0]);

  $scope.notSorted = function(obj){
    if (!obj) {
        return [];
    }
    return Object.keys(obj);
}
});

index.html

<table border=1>
      <thead>
        <tr>
          <th ng-repeat="key in notSorted(cols)" ng-init="value=cols[key]">{{value}}</th>
        </tr>
      </thead>
      <tbody>
        <tr ng-repeat="row in data">
          <td ng-if="!$last" ng-repeat="dat in notSorted(row)" ng-init="value=row[dat]">{{value}}</td>
        </tr>
      </tbody>
    </table>

它给了我完美的表,但问题出在一栏中MyValues。我有数据列表,并想创建具有所有List值的嵌套表。

我该如何实现?要检查是否有列具有列表(如果是),然后生成嵌套表。检查这个矮人http://plnkr.co/edit/Ixvp8B0dRwOBDHflmu2j?p=preview


问题答案:

您可以这样编写标记:

<table>
  <thead>
    <tr>
      <th ng-repeat="(k,v) in data[0]">{{k}}</th>
    </tr>
  </thead>
  <tbody>
    <tr ng-repeat="item in data">
      <td ng-repeat="(prop, value) in item" ng-init="isArr = isArray(value)">
        <table ng-if="isArr">
          <thead>
            <tr>
              <th ng-repeat="(sh, sv) in value[0]">{{sh}}</th>
            </tr> 
          </thead>
          <tbody>
            <tr ng-repeat="sub in value">
              <td ng-repeat="(sk, sv) in sub">{{sv}}</td>
            </tr>
          </tbody>
        </table>
        <span ng-if="!isArr">{{value}}</span>
      </td>
    </tr>
  </tbody>
</table>

完整代码:https :
//gist.github.com/anonymous/487956892d760c17487c



 类似资料:
  • 在测试类下面,我想过滤所有部分中的公共语言列表。 例如,测试有药剂列表P1和P2。P1有一个列表 最终输出应该是包含Ja和Zh语言的语言对象列表。

  • 我正在 jasper 报告中创建一个包含 3 个嵌套列表的表,我成功地创建了该表直到第二个列表,但对于第三个列表,它不起作用。有什么办法可以做到这一点吗?我正在为第二个列表使用子报告。 // Java代码 碧玉报告主文件代码 运行代码后我得到的输出。 实际输出 预期产出 谢谢你

  • 我有一个pandas dataframe对象,如下所示: 我想生成一个列表对象列表,其中第一项是列标签,其余的列表值是列数据值: 我该怎么做?谢谢你的帮助。

  • 在索引位置1的输入中遇到的字符串的前半部分将被替换为字符“-”使用流我们如何执行操作? 我有上面的列表,我想用我这样做的循环将每个嵌套列表值的第一个位置替换为“-” 样本输出:[[0,-],[6,-],[0,-],[6,gh],[4,ij],[0,ab],[6,cd]] 但是任何人都可以解释如何使用流来实现同样的目标

  • 我是Java8新手,需要重写一段旧代码来实现一个新的alghoritm。任务是过滤每个列表具有最大速度的对象。列表嵌套在地图中:道路的根地图,其中包含道路段的地图,每个道路段的地图包含对象列表,每个对象以时间间隔降低测量的速度。我需要找到每个列表的所有最大速度。 我发现以下链接看起来像我的问题,但我不能适应他们,我不确定我的尝试解决我的问题正确。 如何使用Java8流和过滤器过滤嵌套循环? Jav

  • 使用JSF 2.0,我需要显示一个表,其中每一行都包含一个打开弹出窗口的链接。我有两种型号: