Ich habe mit einem speziellen Anwendungsfall zu kämpfen. Ich stelle dir unten einen kleinen Ausschnitt zur Verfügung.Herausforderung Wiederholung tr mit ng-Wiederholung
1. Die HTML-Tabelle
Mein HTML ist eine Tabelle. ng-repeat
Direktive muss auf ein HTML-Element angewendet werden. In meinem Anwendungsfall kann dies nicht als eine Instanz von ng-repeat erfolgen besteht aus einem Doppel tr Elements zusammengesetzt:
<!-- ng-repeat the following block n times -->
<tr>
<td>text</td>
</tr>
<tr>
<td tooltip="comment that is bound to the first tr">hover me</td>
</tr>
AngularJS bieten keinen syntaktischen ng-repeat Kommentar (im Gegensatz zu KnockoutJS). Ich habe ähnliche Fragen zu SO gefunden. Der Anwendungsfall bestand jedoch darin, HTML in ein Element einzufügen. Meins würde darin bestehen, einen neuen tr nach dem ng-wiederholten tr zu platzieren, aber es hat einfach nicht funktioniert. Außerdem gibt es neue Dinge zu beachten.
2. Die Tooltip Richtlinie
Der zweite tr eine Tooltip Richtlinie einbettet, die aus Winkel-ui-Bootstrap genommen wird. Daher ist ein reiner jQuery-Ansatz möglicherweise nicht durchführbar.
3. Mein Ziel
biete ich Ihnen mit einem Code-Schnipsel, die nicht bei allen ng-repeat verwenden. Mein Ziel ist es, ng-repeat auf jedes Element meiner Sammlung anzuwenden.
Können Sie nicht tbody-Tag verwenden, um die
AngularJS 1.2 soll ngRepeats über mehrere Elemente hinweg unterstützen: http://www.youtube.com/watch?v=W13qDdJDHp8&t=1079. Das sollte es ermöglichen, das Problem ohne den '
' Hack zu lösen. – nre@nre: Gut zu wissen :) – roland
Antwort
Sie können tbody-Tag für groupping mehrere tr zusammen und verwenden ngRepeat Schleife über sie verwenden.
http://jsfiddle.net/RkCMr/4/
By the way, es sieht aus wie Sie Ihren Code, Dinge zu tun noch in JQuery Weg. Selbst du hast sie in eine Direktive eingefügt. Wie im obigen Beispiel gezeigt, ist eine Anweisung überhaupt nicht erforderlich und JQuery wird nicht verwendet.
Quelle
2013-08-07 07:52:07 DavidLin
Fantastisch! Ich wusste nicht, dass mehrere tbody-Tags erlaubt waren (nur in meinem Bedürfnis nach Upgrades).Vielen Dank :) Ja, meine Lösung war jQuery-ish, da ich dachte, dass mein spezifischer Anwendungsfall nicht mit ng-repeat gelöst werden könnte: o – roland
das funktioniert, aber es ist irgendwie jank zur gleichen Zeit ... – btm1
Stimme mit @ btm1 zu - Ich glaube nicht, dass du "ng-repeat" tbodys sein solltest ... – JaKXz
Hier ist die Lösung dafür.
http://jsfiddle.net/RkCMr/7/
Quelle
2013-08-07 07:58:40 Sushrut
Es ist auch möglich, es mit
ng-repeat-start
undng-repeat-end
Richtlinien zu tun:Meiner Meinung nach ist es viel besser als
tbody
Element zu wiederholen.Quelle
2014-12-09 14:25:39 akn
^^^^^ das ist eine viel bessere Lösung als die angenommene Antwort. Wiederhole nicht über 'tbody'! – hgoebl
Wie hgoebl sagte, ist dies die beste Antwort. Ich bin schockiert zu sehen, dass so viele Leute ng-repeat auf tbody empfehlen. das ist schlechte Praxis. Es muss zusätzliche Polsterungen/Reihen enthalten, die im Styling angezeigt werden. – jward01
Bis Winkel 1.2 war diese Methode nicht verfügbar. – shanemgrey
Verwandte Themen