在执行ng-repeat
时,是否可以根据某些条件更改元素顺序?
假设我们有这样的代码:
<div ng-repeat="i in [1,2,3,4,5,6,7]">
<div class="element-1">Element 1: {{i}}</div>
<div class="element-2">Element 2: {{i}}</div>
</div>
现在,当element-*
为偶数时,我希望更改divs
i
的顺序。有可能吗?
输出:
<div>
<div class="element-1">Element 1: 1</div>
<div class="element-2">Element 2: 1</div>
</div>
<div>
<div class="element-2">Element 2: 2</div>
<div class="element-1">Element 1: 2</div>
</div>
<div>
<div class="element-1">Element 1: 3</div>
<div class="element-2">Element 2: 3</div>
</div>
<div>
<div class="element-2">Element 2: 4</div>
<div class="element-1">Element 1: 4</div>
</div>
......等等。
[编辑]
我想避免为float: right
添加element-1
的解决方案。
我还想避免重复HTML代码(创建第二个块)。这是我的问题的一个简单示例。我的项目要复杂得多(代码量大)。
答案 0 :(得分:0)
使用两个单独的容器ng-hide
或ng-if
来实现您的目标:
<div ng-repeat="i in [1,2,3,4,5,6,7]">
<div ng-if="i % 2 == 0">
<div class="element-1">Element 1: {{i}}</div>
<div class="element-2">Element 2: {{i}}</div>
</div>
<div ng-if="i % 2 != 0">
<div class="element-2">Element 2: {{i}}</div>
<div class="element-1">Element 1: {{i}}</div>
</div>
</div>
答案 1 :(得分:0)
你应该使用ng-if over ng-show / ng-hide,因为它可以让你的DOM更小更干净。你必须要注意ng-if
的可能范围问题<div ng-repeat="i in [1,2,3,4,5,6,7]">
<div class="element-1" ng-if="$index % 2 === 0">Element 1: {{i}}</div>
<div class="element-2" ng-if="$index % 2 === 0">Element 2: {{i}}</div>
<div class="element-2" ng-if="$index % 2 === 1">Element 2: {{i}}</div>
<div class="element-1" ng-if="$index % 2 === 1">Element 1: {{i}}</div>
</div>