die gleiche URL ('/') mit verschiedenen Vorlagen basierend auf dem Login-Status in AngularJS

8

Ich würde gerne die beste Vorgehensweise kennen lernen, wie man Routing und Vorlagen in AngularJS einrichtet, um eine andere Front & Amp; Login-Bereich für Besucher und zeigen dann ein Dashboard für angemeldete Benutzer auf der gleichen Basis-URL ('/').

Die beiden Seiten sind strukturell völlig verschieden und es werden auch verschiedene Assets benötigt.

Ist es besser, zwei verschiedene Apps für die zwei Teile der Website einzurichten, aber wie würde ich dann die Sitzung zwischen den beiden verwalten?

Oder ist es besser, ein "leeres" Layout mit nichts zwischen den body-Tags zu erstellen und die verschiedenen Templates in diese zu laden und ein separates Routing für den vorderen Teil und den dasboard-Teil vorzunehmen?

Ich bin auf der Suche nach der Art, wie der Login von Facebook gemacht wird. Nach dem Anmelden in der Stammdomäne bleiben.

Ich habe meinen Nachmittag damit verbracht zu googeln und SO zu suchen, konnte aber keine Anleitungen dazu finden. Irgendwelche Ideen, wie Sie normalerweise diese Art von Trennung in AngularJS machen, wären sehr willkommen.

    
Jack Gerson 05.09.2014, 14:29
quelle

2 Antworten

17

Martins Antwort ist in Ordnung, aber ich würde lieber das Problem mit dem UI-Router-Modul lösen:

  1. Erstellen Sie drei Zustände: root , dashboard und landing .
  2. Erfassen Sie die URL mit root state und leiten Sie sie je nach Autorisierungsstatus in dashboard oder landing um.
  3. dashboard und landing haben controller und templateUrl an einer Stelle zusammen mit anderen Anwendungszuständen definiert, was nett ist.

Codebeispiel:

%Vor%

Komplettes Beispiel für Plunker .

    
Klaster_1 05.09.2014, 16:29
quelle
7

Sie können dieselbe Mastervorlage verwenden und je nachdem, ob der Benutzer angemeldet ist oder nicht, verschiedene Teiltabellen einschließen.

%Vor%     
Martin 05.09.2014 14:34
quelle

Tags und Links