So machen Sie Angular 2 Pickup dynamisch hinzugefügt RouterLink-Anweisung

8

Wie in diesem Plünderer zu sehen ist, füge ich dynamisch eines meiner Elemente zu einem HTML-Code hinzu bis dahin:

%Vor%

Dies führt dazu, dass <a routerLink="/my-route">GoTo Route</a> zum DOM hinzugefügt wird, aber Angular weiß nichts über die Anweisung routerLink für dieses Element und "bindet" nicht daran. Also, wenn Sie auf den Link klicken, führt es zu einem vollständigen Neuladen mit Re-Bootstrap (was nicht in Plunk funktioniert, gibt es nur eine 404).

Frage : Wie kann angular angegeben werden, um durch das DOM (oder seinen Teil oder sogar ein einzelnes Element) zu gehen und bei Bedarf eine Komponenteninitialisierung durchzuführen?

    
Dethariel 07.09.2016, 23:32
quelle

1 Antwort

3

Angular2 verarbeitet kein HTML, das in irgendeiner Weise außer der Bereinigung dynamisch hinzugefügt wurde.

Das Weitergeben von '<a routerLink="/my-route">GoTo Route</a>' an innerHTML macht genau das und übergibt diese Zeichenfolge an das DOM, aber sonst nichts. Es wird keine routerLink -Direktive instanziiert oder angewendet.

Wenn Sie HTML dynamisch hinzufügen müssen, das Angular2 Bindings, Direktiven oder Komponenten verwendet, können Sie den HTML-Code zu einer Komponentenvorlage hinzufügen und diese Komponente dynamisch mit ViewContainerRef.createComponent() like zum Beispiel in Angular 2 dynamische Tabs mit User-Klick ausgewählten Komponenten

    
Günter Zöchbauer 08.09.2016, 05:04
quelle