【问题标题】:AngularJS and ngRepeat - insert additional element every n repeatsAngularJS 和 ngRepeat - 每 n 次重复插入一个附加元素
【发布时间】:2016-05-27 18:26:05
【问题描述】:

我正在尝试创建一个结构,其中每 7 个重复的 div 插入一个额外的 div。此 div 必须属于父级,而不是重复 div 之一的子级。

仅仅改变类是不够的,整个内容会有所不同,另外的div会使用完全不同的ngShow逻辑。

例如:

<div id="parent">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="special-child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="special-child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="special-child"></div>
</div>

该示例使用特定数量的 div,ngRepeat 可以是任意数量。同样重要的是,ngRepeat 的最后一个结果会在其后添加一个额外的 div,即使它不是 7 的精确倍数。

我正在使用的当前 ngRepeat 逻辑是:

<div id="parent">
  <div class="child" ng-repeat="o in data"></div>
  <div class="special-child"></div>
</div>

但这不能正常工作,因为附加的 div 只在所有重复的 div 之后插入一次。

更新工作示例

<div id="parent">
  <div class="child" ng-repeat-start="o in data"></div>
  <div class="special-child" ng-if="( $index + 1 ) % 7 == 0 || $last" ng-repeat-end></div>
</div>

此解决方案需要 AngularJS 1.2+

【问题讨论】:

    标签: angularjs angularjs-ng-repeat


    【解决方案1】:

    你需要接近这个的东西:

    <div ng-repeat="o in data">
      <div class="child"></div>
      <div ng-if="$index % 7 == 0" class="special-child"></div>
    </div>
    

    【讨论】:

    • 有什么不需要重复父母的方法的想法吗?想要这是最后的手段,因为如果我需要在中间添加一个额外的 div,这意味着很多 CSS 更改!
    • 回答我的问题。 ng-repeat-start 和 ng-repeat-end 似乎是答案(AngularJS 1.2+)。我把 ng-repeat-start 放在孩子身上,把 ng-repeat-end 放在特殊孩子身上,并按照建议使用了 ng-if 的变体,这样就可以在不重复父母的情况下给出结果!
    猜你喜欢
    • 2013-08-17
    • 2016-03-15
    • 1970-01-01
    • 2017-07-14
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多