Javascript 如何从阵列数据模型在基于列的布局中放置交替元素?
Javascript 如何从阵列数据模型在基于列的布局中放置交替元素?,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,$scope中有一个动态数组,HTML模板中有三列。数组中的元素需要以HTML格式呈现,如下所示: 请注意,这三列只显示一次。根据与表达式匹配的索引,每个元素将被放置在特定列中 当然,我可以使用三个ng repeat声明来实现它,但是出于性能考虑,我希望只使用一个ng repeat就可以实现它 任何想法都值得赞赏。使用嵌套的ng repeats来调节列中的每个项目;假设采用这种模式: 列:[1,2,3], 项目:['a','b','c','d','e','f','g','h','i'] 您
$scope
中有一个动态数组,HTML模板中有三列。数组中的元素需要以HTML格式呈现,如下所示:
请注意,这三列只显示一次。根据与表达式匹配的索引,每个元素将被放置在特定列中
当然,我可以使用三个ng repeat
声明来实现它,但是出于性能考虑,我希望只使用一个ng repeat
就可以实现它
任何想法都值得赞赏。使用嵌套的
ng repeat
s来调节列中的每个项目;假设采用这种模式:
列:[1,2,3],
项目:['a','b','c','d','e','f','g','h','i']
您的视图将如下所示:
列{(outerIndex=$index)&&c | | c}
注意我们是如何将一个新变量(outerIndex
)注入到外循环作用域中的,该变量将与交替条件变量的内循环的$index
一起使用
单击下面的大演示按钮查看它的实际操作(我们在这里依赖于引导css,只是为了演示布局中的列)
TL;DR,Gimmi tha演示
我刚刚偶然发现了完全相同的问题。可能是嵌套的
ng repeat
s与内部$index
引用?是的,这就是诀窍。看我的答案。这有点快,有点脏,我很快就会回来重构,并从中提取一个通用的a指令。不过,这应该可以让您开始了。感谢您的回答和编辑:)。您的答案是可行的,但实际上它仍然会将项
数组完全循环3次,因此仍然存在潜在的性能问题。我用3数组解决了这个问题,这也很棘手。我稍后会将其作为答案发布。我会继续寻找更好的方法。性能瓶颈在于改变DOM,而不是循环数据。我们使用条件(ng if
)来解决这个问题,所以这里没有惩罚。然而,首先正确地建模数据总是更好的,所以也许你可以从三个数组移动到一个矩阵(!),它最好地描述了表格数据。它有意义并且是可以接受的…我接受它作为一个解决方案。但我仍然想知道是否有更好的方法避免它循环三次。是的,使用三个数组实际上是硬代码。矩阵更具可扩展性和灵活性。再次感谢。