2016-08-17 4 views
1

Ich möchte eine "Login-Komponente", die eine Art Popup-Modal anzuzeigen. Ich denke, ich habe viele Orte überall in meiner App, die dieses Modal nennen können, Was ist ein Batter-Ansatz: 1. Um die "Login-Komponente" überall zu platzieren, die ich benutze, obwohl es überall gleich ist. 2. Platzieren Sie es in der Top-Level-Komponente und zeigen Sie es und verstecken Sie es mit einer Art von Ereignis-Listener.erstellen Sie wiederverwendbare Komponente in eckigen 2

In der ersten Weise verkapsele ich die Komponente, um anzuzeigen, was sie benötigt, und habe eine einfache Kontrolle über ihren Lebenszyklus. In der zweiten Art vermeide ich es, mich selbst zu wiederholen und es alle Komponenten zu nennen.

Danke.

Antwort

1

Der bessere Weg ist, es irgendwo zu platzieren und einen Shared Service mit Observables zu verwenden, um allen interessierten Komponenten das Senden von Nachrichten zu ermöglichen.

Siehe https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

+0

Danke für den Link. Ich habe es gelesen, aber es zeigt nur Situation, wenn die aufrufenden Komponenten das Elternteil der neuen Komponenten ist. Ich brauche, dass die Login-Komponente ohne Verbindung mit der aufrufenden Komponente sein wird ... –

+0

Wenn Sie den Dienst verwenden, dann tut es nicht Unabhängig davon, welche Komponente übergeordnet und was untergeordnet ist, können sich die beteiligten Komponenten an beliebiger Stelle in Ihrer Anwendung befinden. Die einzige Sache, die zählt, ist, dass der gemeinsam genutzte Dienst bei einem gemeinsamen Elternteil oder Vorfahr der beteiligten Komponenten bereitgestellt wird, andernfalls können sie nicht die gleiche Dienstinstanz einspeisen. –

+0

Können Sie ein Beispiel für den Aufruf der Remote-Komponente mit Service teilen? –

1

Sie auch irgendetwas davon nicht tun müssen. Erstellen Sie einfach eine Login-Komponente und leiten Sie sie bei Bedarf um. Wiederhole dich nicht. Haben Sie eine Möglichkeit, den Anmeldestatus des Benutzers zu überprüfen. Dann, wenn der Login-Status ungültig wird, umleiten Sie einfach auf die Anmeldeseite mit entsprechenden Nachrichten

+0

Wie kann ich die Komponente umleiten? –

Verwandte Themen