【问题标题】:AngularJS Multiple ng-repeats on single row of tableAngularJS在单行表上多次重复
【发布时间】:2015-09-15 01:58:08
【问题描述】:

我正在尝试显示一个表格,其中包含来自父对象和子对象列表的项目。是否可以使用 ng-repeat 来做到这一点? for 循环看起来像这样。

foreach(var parent in list)
  foreach (var child in parent)
     print(parent.1)
     print(parent.2)
     print(child.1)
     print(child.2)

以下是每一行的大致概念。

<table>
<tr ng-repeat="parent in list">
   ng-repeat="child in parent"
    <td>parent.item1</td>
    <td>parent.item2</td>
    <td>parent.item3</td>
    <td>child.item1</td>
    <td>child.item2</td>
</tr>
</table>

【问题讨论】:

  • 不太清楚..你能解释一下吗..
  • 这还不是很清楚;内部ng-repeat 需要一个元素...您是否打算将子&lt;tr&gt; 嵌套在父&lt;tr&gt; 中?

标签: angularjs ng-repeat


【解决方案1】:

是的,很有可能。

假设一个名为 parentsparent 对象数组和 parent.child 本身是一个 child 对象数组,就像在您的示例中那样,您将使用特殊的 ng- 执行以下操作ngRepeat 的 repeat-start 和 ng-repeat-end 形式。

<table>
<tr ng-repeat="parent in parents">  
    <td>parent.item1</td>
    <td>parent.item2</td>
    <td>parent.item3</td>
    <td ng-repeat-start="child in parent.child">child.item1</td> <!-- start of the inner loop -->
    <td ng-repeat-end>child.item2</td> <!-- end of inner loop -->
</tr>
</table>

更新:

由于 OP 似乎想要按父级分组的单独子行,这可能是寻求的解决方案:

<table>
  <tbody ng-repeat="parent in parents">
  <tr ng-repeat="child in parent.child">
    <td>parent.item1</td>
    <td>parent.item2</td>
    <td>parent.item3</td>
    <td>child.item1</td>
    <td>child.item2</td>
  </tr>
  </tbody>
</table>

【讨论】:

  • 这只会为每个父母做一行,孩子的倍数&lt;td&gt;,是吗?所以如果父母有 5 个孩子,那一行会有 10 个&lt;td&gt;
  • 啊,我明白你在找什么了。让我稍微修改一下代码。
  • @james 试试这个更新。这两种方法都能满足您的需求吗?
  • 我得到了第一个例子,但正如@Claies 所说,它只为每个父母做一行,我需要每个孩子一行。
  • @MichaelOryl 第二个例子似乎做了我想做的事,但我目前遇到了另一个错误。
猜你喜欢
  • 2018-03-01
  • 2016-11-29
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
相关资源
最近更新 更多