Gegeben eine ähnliche HTML-Struktur:
%Vor% Wenn ich versuche, auf das übergeordnete Element von two
zuzugreifen, funktioniert es und das Protokoll gibt das übergeordnete div zurück, aber wenn das übergeordnete Element der Rumpf ist, wie in one
case, funktioniert es nicht und gibt eine leere Menge zurück .
BEARBEITEN: Meine Vermutung für dieses Problem ist, dass der Körper meiner App auf der Client-Seite gerendert und an das body-Element der Run-Methode des Moduls angehängt wird. Der HTML-Code wird mit $('body').html($compile(body.render())($rootScope));
eingefügt und ich nehme an, dass die Anweisung innerhalb der $ compile-Funktion aufgerufen wird, bevor der Inhalt in den Body eingefügt wird. Kann ich dieses Problem umgehen?
Tatsächlich hast du dein Problem richtig verstanden: $compile
löst die Template-Kompilierungs- und Verknüpfungsphasen auf deinem Element aus, so dass es währenddessen keine Eltern hat.
Der einfachste Weg, das zu beheben, besteht darin, zuerst den HTML-Code an den Text anzuhängen und dann ihn zu kompilieren.
%Vor%Oder wenn Sie nicht den ganzen Körper, sondern nur das neue Element kompilieren wollen:
%Vor%Tags und Links angularjs angularjs-directive