/ / Wie kann ich mit Vanilla JavaScript HTML-Elemente in eine Angular-Anwendungswebseite einfügen? - Javascript, HTML, Angularjs

Wie kann ich Vanilla-JavaScript verwenden, um HTML-Elemente in eine Angular-Anwendungswebseite einzufügen? - Javascript, HTML, angularjs

Ich habe eine externe / öffentliche JavaScript - Bibliothek erstellt.

Während ich es auf einer Angular 1.x Web App teste, indem ich das Skript in die <HEAD>Ich habe festgestellt, dass es die Angular-App bricht, indem Klicks nichts bewirken.

Nach stundenlangem Debuggen von Namespace, Eigenschaften,und Funktionen; Ich habe endlich festgestellt, dass der Schuldige das Einfügen von HTML-Elementen in die Webseite ist. Meine JS-Bibliothek verwendet derzeit diesen Code, um HTML in die Webseite einzufügen. Wie würde ich dafür sorgen, dass Angular-Apps (oder SPAs im Allgemeinen) unterstützt werden?

var HTML_ELEMENTS = ["<h1>Hi</h1>", "<div>Hello again.</div>"];

for (var i = 0; i < HTML_ELEMENTS.length; i++) {
document.body.innerHTML += HTML_ELEMENTS[i];
};

Einer der Gründe, warum ich die HTML-Elemente am Ende von hinzufüge document.body Das liegt daran, dass ich diese Elemente so einstelle, dass sie den höchsten Z-Index auf der Seite haben, sodass alle konkurrierenden Elemente den Z-Index für meine eingefügten HTML-Elemente liefern.

Antworten:

1 für die Antwort № 1

Beantwortung meiner eigenen Frage mit meiner Implementierung. Alles Verdienst geht an @Cbroe, mich in die richtige Richtung gelenkt zu haben.

Grundsätzlich können Sie nicht verwenden document.body.innerHTML mit Angular, also hier ist, was ich stattdessen verwendet habe:

var HTML_ELEMENTS = ["<h1>Hi</h1>", "<div>Hello again.</div>"];

for (var i = 0; i < HTML_ELEMENTS.length; i++) {
var child = document.createElement("div");
child.innerHTML = HTML_ELEMENTS[i];
child = child.firstChild;
document.body.appendChild(child);
};