ng-repeat in Kombination mit einer benutzerdefinierten Direktive

Ich habe ein Problem mit der Verwendung der ng-repeat-Direktive in Kombination mit meiner eigenen benutzerdefinierten Direktive.

HTML:

<div ng-app="myApp">
  <x-template-field x-ng-repeat="field in ['title', 'body']" />
</div>

JS:

angular.module('myApp', [])
    .directive('templateField', function () {
        return {
            restrict: 'E',
            compile: function(element, attrs, transcludeFn) {
                element.replaceWith('<input type="text" />');
            }
        };
    });

SehenjSFiddle

Das Problem dabei ist, dass nichts ersetzt wird. Was ich versuche zu erreichen, ist eine Ausgabe von 2x Eingabefeldern, wobei die 'x-template-field'-Tags im DOM vollständig ersetzt wurden. Mein Verdacht ist, dass ng-repeat das DOM gleichzeitig modifiziert, dies aber nicht funktioniert.

Gemäßdiese Bei einer Stapelüberlauf-Frage scheint die akzeptierte Antwort darauf hinzudeuten, dass dies in früheren Versionen von AngularJS (?) Tatsächlich funktioniert hat.

Würde element.html ('...') nicht funktionieren?

Während element.html ('...') den generierten HTML-Code tatsächlich in das Zielelement einfügt, möchte ich den HTML-Code nicht als untergeordnetes Element des Template-Tags, sondern vollständig im DOM ersetzen.

Warum umhülle ich mein Template-Tag nicht mit einem anderen Tag mit der Anweisung ng-repeat?

Grundsätzlich möchte ich aus dem gleichen Grund wie oben nicht, dass mein generierter HTML-Code als untergeordnetes Element für das sich wiederholende Tag verwendet wird. Während es in meiner Anwendung wahrscheinlich anständig funktionieren würde, hätte ich immer noch das Gefühl, dass ich mein Markup an Angular angepasst habe und nicht umgekehrt.

Warum verwende ich die Eigenschaft "template" nicht?

Ich habe keine Möglichkeit gefunden, den in den Eigenschaften "template" / "templateUrl" abgerufenen HTML-Code zu ändern. Der HTML-Code, den ich einfügen möchte, ist nicht statisch, sondern wird dynamisch aus externen Daten generiert.

Bin ich mit meinem Markup zu wählerisch?

Wahrscheinlich. :-)

Jede Hilfe wird geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage