2015-11-19 77 views
0

我想创建一个指令,该指令需要一个字符串数组,并将它们组织到一个表中,每行有4个字符串。如何在我的自定义指令中使用现有的ng-repeat指令?

因此,例如,阵列['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']将被呈现为:

a b c d 
e f g h 

对于这一点,我可以很容易地写出一个link函数手动操纵DOM(jQuery的样式)和renderes此表。

但是这种感觉不对,因为我们已经有了可以做这项工作一半的指令,如ng-repeat。我想使用现有的可以提供帮助的东西,只编写新的功能。

我该如何做到这一点?

+0

你的问题使自己无法回答。没有任何“正确的方法”来完成每一项任务,排除其他任何方法;有很好的方法来完成任务和不好的方法来完成任务。在你的特定情况下,可以显示一个完成你的任务的另一种好方法,但这并不能使它成为唯一正确的方式,或者你应该完成所有类似任务的方式。因此,你应该问的是你说你不希望任何人回答的一件事。 – Claies

+0

这有两种常见方式,主要取决于您是否使用响应式框架。 http://stackoverflow.com/questions/27211799/angular-ng-repeat-add-bootstrap-row-every-3-or-4-cols有几个例子;一种方法是使用响应重置,而不是尝试控制DOM。另一种方法涉及将数据分块为数组数组,并使用两个'ng-repeat'来迭代外部数组作为行,内部数组迭代为列。 – Claies

+0

你是正确的,但你的想法是操纵DOM并不是真正的角度。 – Claies

回答

0

是的,你只需要指定模板(通过template或templateUrl),并在里面使用你的变量。

请记住将属性映射到作用域变量,然后您可以在不使用其他代码的情况下使用它。