2017-08-29 3 views
0

Der Titel ist ziemlich selbsterklärend, also - ich habe ein Eingabeelement in app.component.html Datei, das ist der Code: <input type="text" name="titleInput" id="titleInput" [(ngModel)]="titleInput"> Dann habe ich versucht, ein H1-Element in einer anderen Komponente, wie ich es wollte angezeigt was im Eingabefeld eingegeben wurde. Hat nicht funktioniert. Hat ein h1-Element in app.component erstellt - funktioniert einwandfrei. Ich habe viel gesucht, aber nichts gefunden. Kannst du mir helfen?ngModel funktioniert nicht in zwei verschiedenen Komponenten?

+0

In Ihrer "anderen" Komponente, verwenden Sie verzögertes Laden? – brijmcq

+0

sind diese Komponenten Eltern-Kind-Beziehung? – Rahul

Antwort

0

Sie können Ihr Modell titleInput verwendet werden, die durch die input manipuliert wird, Interpolation in Ihrem Fall angezeigt werden, in Ihrem Header-Tag, das heißt {{.}}.

Zum Beispiel:

<div> 
    <h1>{{titleInput}}</h1> 
    <input type="text" name="titleInput" id="titleInput" [(ngModel)]="titleInput"/> 
</div> 

Sie können es sehen here arbeiten.

+0

In diesem Beispiel kann ich sehen, dass es funktioniert, aber es funktioniert in der gleichen Komponente. Und ich versuche, String-Interpolation zu verwenden, aber das h1-Element ist in einer anderen Komponente, und dann tut es nicht. – Raptrozz

0

Es gibt zwei Möglichkeiten.

Entweder tun Sie es mit einer Kind-Eltern-Beziehung mit @Input. https://angular.io/guide/component-interaction (siehe anderen Beitrag).

Oder verwenden Sie LocalStorage.setItem('titleInput', titleInput); in der ersten Komponente.

Und in der zweiten LocalStorage.getItem('titleInput'); und LocalStorage.removeItem('titleInput');

+0

Nun, ich sollte "@Input() titleInput" in der ts-Datei der anderen Komponente eingeben, richtig? – Raptrozz

Verwandte Themen