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; }; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |