Meine Frage ist ähnlich wie this one, aber anstelle von Zeile vor, ich möchte es anhängen.AngularJS - append Zeile nach Element in der Direktive
Dies funktioniert nicht:
app.directive('createTable', function ($compile) {
return {
link: function (scope, element, attrs) {
var contentTr = angular.element('<tr><td>test</td></tr>');
contentTr.parentNode.insertBefore(element, contentTr.nextSibling);
$compile(contentTr)(scope);
}
}
});
jqLite hat keinen insertAfter, wenn Sie also jQuery nicht verwenden, müssen Sie stattdessen .after verwenden. – Andrew
Frage: Warum müssen Sie die Elemente austauschen? Ich bin mir nicht sicher, warum es nicht "nur funktioniert", wenn Sie die einzufügenden Elemente an das aktuelle Element anhängen. – Claudiu
Der Austausch ist erforderlich, da jede Zeile der Wiederholung an der ursprünglichen Position gerendert wird (vor allen Zeilen, die wir bereits angehängt haben). Der Swap prüft also nur, ob eine angehängte Zeile dahinter steht und verschiebt sie vor die aktuelle Zeile. – noj