angular 1.2.15运行并发循环

时间:2015-07-06 20:55:34

标签: javascript angularjs

我需要这样做:

<str name="aux_identifiers">1 2 3 4</str>

但是我不确定如何跟踪兄弟姐妹的两个循环。我可以轻松地做到这一点:

<tbody>
<tr class=“object.sibling[0]”>
<tr class=“object.sibling[1]”>
<tr class=“object.sibling[2]”>
<tr class=“object.sibling[2].child”>
<tr class=“object.sibling[2].child”>
<tr class=“object.sibling[3]”>
<tr class=“object.sibling[4]”>

然后行无序。

我找到了一个似乎可以使用ng-repeat-start和ng-repeat-end工作的解决方案,它可以直观地实现我想要的东西但是当用户结束hg-repeat启动循环所需的额外空行会使表格变得混乱复制粘贴。

<tbody> 

<tr class=“object.sibling[0]”>

<tr class=“object.sibling[1]”>

<tr class=“object.sibling[2]”>

<tr class=“object.sibling[3]”>

<tr class=“object.sibling[4]”>

<tr class=“object.sibling[2].child”>

<tr class=“object.sibling[2].child”>

问题在于,尽管他们可能代表兄弟姐妹的孩子,但他们都必须处于同一水平,就像所有兄弟姐妹一样。我无法弄清楚如何用角度1.2.15做到这一点。如何运行两个跟踪彼此不嵌套的循环?

1 个答案:

答案 0 :(得分:1)

嗯,你得到的有趣场景。这应该有效:

<tr ng-repeat-start="sibling in siblings"></tr>
<tr ng-repeat-end ng-repeat="child in sibling.children"></tr>

这个想法是为每个兄弟姐妹重复两行,但每个兄弟姐妹的第二行实际上是为所有兄弟姐妹重复的。因此,在实践中,如果兄弟姐妹实际上有孩子,第二行将只显示(并重复)。

以下是一个完整的例子:

&#13;
&#13;
var app = angular.module('app', []);

app.controller('MainCtrl', function($scope) {
  $scope.siblings = [
    {
      children: [
        {}, {}, {}
      ]
    },
    
    {},
    
    {
      children: [
        {}, {}
      ]
    }
  ];
});
&#13;
<div ng-app="app">
  <table ng-controller="MainCtrl">
    <tr ng-repeat-start="sibling in siblings">
      <td>Sibling {{$index}}</td>
    </tr>
    <tr ng-repeat-end ng-repeat="child in sibling.children">
      <td>Sibling child {{$index}}</td>
    </tr>
  </table>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
&#13;
&#13;
&#13;

注意没有额外的<tr>元素。