2014-08-29 2 views
1

Как вы определяете, что помещается после (или между) элементами ng-repeat?Не запутанный метод для добавления новой строки после ng-repeat

Очевидно вместо

<div> 
    <div></div><div></div><div></div><div></div> 
</div>​ 

Я хочу

<div> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div></div> 
</div>​ 

или

<div> 
    <div></div>&#10;<div></div>&#10;<div></div>&#10;<div></div>&#10; 
</div>​ 

Я не хочу использовать дополнительные элементы. Если вам интересно, да, элементы div являются встроенными блоками.

PS: Я удалил комментарии, созданные угловыми для наглядности.

+0

Почему ваши 'div's рядный, если вы хотите, чтобы они были разделены на их собственной линии? – aymericbeaumet

+0

@aymericbeaumet Проблема заключается не в типе элементов в моем примере, а в том, как вставить что-то после элегантного. – Knu

+0

Измените свой класс CSS, который делает встроенный div –

ответ

2

Если, не используйте дополнительный элемент вы имеете в виду вы не хотите, чтобы это сделать:

<div ng-repeat="test in tests"></div> 
    <div></div>&#10 
</div> 

Тогда вы можете быть готовы сделать что-то вроде этого вместо (еще дополнительный элемент, но вы просто обернув & # 10:

<div ng-repeat-start="test in tests"></div> 
<span ng-repeat-end>&#10</span> 

http://jsfiddle.net/cwnr8ag5/

Othewise, вы должны использовать директиву:

<div ng-repeat="test in tests" append="|">test</div> 
.directive('append', [function() { 
return { 
    restrict: 'A', 
    scope: { 
     append: '@', 
    }, 
    replace: false, 
    link: function (scope, elem, attrs, ngModel) { 
     $(elem).after(scope.append); 
    } 
} 

http://jsfiddle.net/5gcsscr3/

Было бы трудно сделать это во время компиляции ... внутри <ng-repeat>, функция ссылка выполняется после того, как шаблон был клонирован для этого конкретного элемента, чтобы сделать это раньше. .. Я не знаю, будет ли это работать даже с угловыми повторениями. Возможно, стоит сделать снимок, но я просто не знаю.

Edit:

Он работает с , если передать его в качестве переменной, а не как строки:

http://jsfiddle.net/5gcsscr3/3/

+0

Да, я не имел никакого дополнительного шага в шаблоне. Есть ли способ сделать это во время компиляции? – Knu

+0

Ваш метод работает с "|" но не с « » на моем конце. +1 за усилие. – Knu

+0

Если вы передадите его как переменную, он победит цель использования значения для атрибута. – Knu

Смежные вопросы