加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular.js ng-repeat:x次迭代后打开/关闭元素

发布时间:2020-12-17 17:05:39 所属栏目:安全 来源:网络整理
导读:我有一个简单的ng-repeat正在进行: div class="row-fluid" div class="span4" ng-repeat="piece in clothes | filter:query" img ng-src="{{piece.mainImage[0]}}" class="thumbImg" / a href="#/json/{{piece.systemName}}"{{piece.name}}/a /div/div 重复
我有一个简单的ng-repeat正在进行:

<div class="row-fluid">
  <div class="span4" ng-repeat="piece in clothes | filter:query">
    <img ng-src="{{piece.mainImage[0]}}" class="thumbImg" />
    <a href="#/json/{{piece.systemName}}">{{piece.name}}</a>
  </div>
</div>

重复3次后,我想停止重复,添加一个结束< div>并打开一个新的.row-fluid(开始一个新行),然后重新启动我离开的循环,每次第三次插入标签.

Angular的文档很难遍历,因此很难弄清楚如何做到这一点.

解决方法

ngRepeat将不断重新评估过滤器,因为它每次运行时都会得到不同的值.

这个可怕的代码似乎适用于一般情况.如果你有相同的阵列,事情会变得毛茸茸.我们需要能够比较数组的相等性,但这是一个难题.我采用了简单/脆弱的方式,只使用了stringify().无法让angular.equals()为我工作;我认为它可能只适用于浅物体.

app.filter('partition',function($cacheFactory) {
  var arrayCache = $cacheFactory('partition')
  return function(arr,size) {
    var parts = [],cachedParts,jsonArr = JSON.stringify(arr);
    for (var i=0; i < arr.length; i += size) {
        parts.push(arr.slice(i,i + size));        
    }
    cachedParts = arrayCache.get(jsonArr); 
    if (JSON.stringify(cachedParts) === JSON.stringify(parts)) {
      return cachedParts;
    }
    arrayCache.put(jsonArr,parts);

    return parts;
  }; 
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读