Ich habe eine einzigartige Situation vor sich. Ich benutze Angular 2 mit Ionic 2, um eine Telefon-App zu erstellen. Ich muss das DOM-Element einer der Komponenten von Ionic 2 dazu bringen, etwas HTML in sein innerHTML
-Attribut einzufügen.Richtiger Weg, um ein DOM-Element zu bekommen
Wie mache ich das in Angular 2? Ich habe keinen Zugang zu dieser Komponente, da es eine der Komponenten ist, die mit Ionic geliefert wird. Um genauer zu sein, es ist die Komponente und ich initialisiere es in einer Typescript-Funktion, aber es gibt keine Möglichkeit für mich, das DOM-Element zu erhalten, das erstellt wird.
Ich könnte JQuery hinzufügen und einfach das DOM-Element, das ich für die Komponente benötige, bekommen, aber ich habe gelesen, dass einschließlich JQuery in Ihrer Angular 2-App eine schlechte Übung ist.
Ich habe mit ViewChild
nachgeschlagen, aber das funktioniert nur in einer Komponente, die Sie gemacht haben. Da dies eine Komponente ist, die mit Ionic 2 kommt und ich die Komponente nicht erstellt habe, kann ich ViewChild
nicht verwenden, um seine ElementRef
zu erhalten.
EDIT: Ich habe vergessen zu sagen, dass, wenn das Ionic 2 das Element einfügt es als Kind des Körpers eingefügt wird. Es ist also außerhalb des Komponentenbaums, der von meinen Komponenten erzeugt wird, und ich kann nicht so etwas wie ContentChild
verwenden, um Nachkommen zu suchen, weil es kein Nachkomme ist.
Also wie bekomme ich das DOM-Element für diese Komponente nur mit Angular 2?
Was ist mit 'ContentChild)'? ContentChild ermöglicht das Suchen von Nachkommen. –
@ GünterZöchbauer Siehe meine Bearbeitung oben. Ich habe vergessen zu erwähnen, dass wenn Ionic 2 das Toast-Element einführt, es in den Körper eingefügt wird. Es ist also kein Nachkomme in meinem Komponentenbaum. – Graham
Ich weiß nicht, Ionic oder was der Toast unterstützt. Kannst du eine Komponente an den Toast weitergeben? Welchen Inhalt können Sie dem angezeigten Toast übergeben? –