javascript - 高级结构 : Surrounding ngRepeated items Angular. js

标签 javascript angularjs recursion angularjs-ng-repeat

你有一个正在迭代的对象数组, 您将如何用(元素)包围每个(x)个元素?

如果您的目标是:

每 4 个 ng 重复元素周围有一个(元素)?

surrounding
  ng-repeated-elem
  ng-repeated-elem
  ng-repeated-elem
  ng-repeated-elem
/
surrounding
  ng-repeated-elem
  ng-repeated-elem
  ng-repeated-elem
  ng-repeated-elem
/

每 2 个有一个(元素)包围 4 个 ng 重复元素

complicated
  surrounding
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
  /
  surrounding
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
  /
/
complicated
  surrounding
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
  /
  surrounding
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
    ng-repeated-elem
  /
/


ng-repeat 的正常用法:

<div ng-controller="ExampleContrller as example" >      
  <div ng-repeat="ex in example.arr">
    <span>{{ex.a}}</span>
    <span>{{ex.b}}</span>
  </div>
</div>

会输出:

<div ng-controller="ExampleContrller as example" >      

  <div ng-repeat="ex in example.arr">
    <span>a</span>
    <span>b</span>
  </div>
  <div ng-repeat="ex in example.arr">
    <span>a</span>
    <span>b</span>
  </div>
  <div ng-repeat="ex in example.arr">
    <span>a</span>
    <span>b</span>
  </div>
  <div ng-repeat="ex in example.arr">
    <span>a</span>
    <span>b</span>
  </div>

</div>

你如何让 ng-repeat 输出这个:

<div ng-controller="ExampleContrller as example" >      

  <section> <!-- get a section to surround every (x) ng-repeated elements -->

    <div ng-repeat="ex in example.arr">
      <span>a</span>
      <span>b</span>
    </div>
    <div ng-repeat="ex in example.arr">
      <span>a</span>
      <span>b</span>
    </div>

  </section>

  <section>

    <div ng-repeat="ex in example.arr">
      <span>a</span>
      <span>b</span>
    </div>
    <div ng-repeat="ex in example.arr">
      <span>a</span>
      <span>b</span>
    </div>

  </section>

</div>

最佳答案

这是一种通过使用适当的分组创建另一个数组并使用两个 ng-repeat 来实现的方法:

$scope.data2 = (function(data, count) {
    var arr = [];
    var len = data.length / count;
    for (var i=0 ; i<len ; i++) {
        arr.push(data.slice(i*count, (i+1)*count));
    }
    return arr;
})($scope.data, 3);

-

<section ng-repeat="group in data2">
  <div ng-repeat="item in group">
    <span>{{item.a}}</span>
    <span>{{item.b}}</span>
  </div>
</section>

data为原始数组,count为每组的项目数
这是 fiddle :http://jsfiddle.net/a9n1e7w5/2/

可能有更好的方法来做到这一点,但这行得通。

关于javascript - 高级结构 : Surrounding ngRepeated items Angular. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26190211/

相关文章:

javascript - str.replace(/[^0-9]/g, "") 删除我的整个字符串,而不是仅仅删除非数字字符。如何使其正常工作?

c# - 我们如何从矩阵中获取旋转 Angular ?

javascript - 将 DateTime 转换为本地时间

angularjs - 在基类中使用依赖项而不必从继承类传递此依赖项

programming-languages - 如果不允许 LP 递归,那么可能会出现堆栈溢出的情况?

Scala - 将列表列表转换为单个列表 : List[List[A]] to List[A]

javascript - 设置或分配 'window.location' 时的 Jest 错误

javascript - Jquery 未捕获类型错误 : Object #<Object> has no method 'split'

angularjs - 如何在 AngularJS 1.2 中获取 HTTP 响应状态代码

c++ - 递归克隆图时的stackoverflow