我想知道是否有可能在ng-repeat的第一个循环期间打开DOM元素并在第二个循环期间关闭它。让我们谈谈一些元素列表,我想连续输出2(或者可能是3,4,无关紧要)。所以结果html将是这样的:
Dim dbs As dao.Database
Set dbs = CurrentDb()
dbs.Execute "INSERT INTO TEMP2 ([Study_Date], [Created_By], [Part_Number],
[Upper_Tolerance], [Lower_Tolerance], [ID21_Number]) VALUES ([Study_Date],
[Created_By], [Part_Number], [Upper_Tolerance], [Lower_Tolerance], [ID21_Number])
FROM RAC_DATA_ENTRY
WHERE [RAC_CAP_VALS] = '" & Me.[RAC_CAP_VALS] & "'"
ng-repeat的主要问题不允许我在第一个周期放置行<div class="row"> <!-- add this line during 1sr cycle -->
<div class="element">...element1...</div>
<div class="element">...element2...</div>
</div> <!-- add this line during 2nd cycle -->
<div class="row"> <!-- add this line during 3rd cycle -->
<div class="element">...element3...</div>
<div class="element">...element4...</div>
</div><!-- add this line during 4th cycle -->
并在第二个周期放置<div class="row">
。 ng-repeat在每个循环中添加它们。是否有可能为这种情况找到一些解决方法?
答案 0 :(得分:1)
使用ng-repeat是不可能的。您必须在控制器(多维数组)中准备数据结构,或者编写一个自定义指令,以及当前迭代所需的数组元素数量的附加参数。
UPD:您可以使用lodash&#39;块函数将数组拆分为更小的数组https://lodash.com/docs#chunk
答案 1 :(得分:0)
正如您所说,在一个重复周期中,您不能只输出一半元素(例如没有结束标记的开始标记)。
然而,您可以基于$index
属性在一个周期中执行不同的操作,例如在第一个周期中显示或隐藏特定元素($ index:0)。
或者,查看ng-repeat-start
和ng-repeat-end
以在循环中输出多个元素。更多信息:https://docs.angularjs.org/api/ng/directive/ngRepeat
答案 2 :(得分:0)
我在angularJs中找到了开箱即用的简单解决方案:
<div class="row" ng-repeat="element in elements" ng-if="$index%2==0">
<div class="element" ng-repeat="element in elements|limitTo:2:$index">...</div>
</div>
它会连续输出2个元素,如果需要更多,你应该调整ng-if和limitTo参数。