Ich versuche dynamisch (zur Laufzeit) neue Knoten im DOM hinzuzufügen. Die neuen Knoten sind grundsätzlich die Komponentenselektoren. Das Problem ist, dass der Inhalt der Komponente nicht gerendert wird, so dass das Ergebnis nur leere HTML-Tags hat.Hinzufügen neuer Komponente Element zu DOM in Angular 2 zur Laufzeit rendern nicht die Komponente
Ich benutze Angular 2.0 Documentation Beispiel und modifizierte es ein wenig, nur um den Fall zu zeigen.
Alles, was ich tun, um die Code wiederverwenden und wenn ich auf den Körper klicken, um neue Umsatzsteuerelemente zu erstellen. Offensichtlich funktioniert es nicht.
Dies ist das neue Skript-Element, das ich oben auf body hinzugefügt habe.
<script>
function add(){
var element = document.createElement('sales-tax');
document.getElementsByTagName("my-app")[0].appendChild(element);
}
</script>
und die Funktion wird aufgerufen, sobald ich auf den Körper klicke.
<body onclick="add()">
<my-app>Loading...</my-app>
</body>
Dies ist das Ergebnis. Wie Sie sehen, ist die Umsatzsteuer, die der Vorlage vor Laufzeit hinzugefügt wurde, gerendert, aber die, die ich zur Laufzeit hinzufüge, sind leer.
ich einen anderen Weg gehen würde. Da Sie mehrere Umsatzsteuerelemente nebeneinander haben, warum nicht eine Liste erstellen und nur neue SalesTax-Instanzen hinzufügen? Wo gehört die Umsatzsteuer?Oder testet ihr wirklich nur, wie man Elemente wiederholt? Siehe [* ngFor] (https://angular.io/docs/ts/latest/api/common/NgFor-directive.html) – rinukkusu
das Problem ist, dass ich Elemente dynamisch hinzufügen möchte. Es geht nicht um Elemente zu wiederholen – Tek
Sie Machen Sie sich immer noch einen Knopf, wo immer Sie wollen, und nutzen Sie injizierbare Dienste, um Ihre Daten zu speichern. (Gewähren Sie dies innerhalb einer Angular-Komponente) – rinukkusu