Portaltyp-Anwendung mit AngularJS (mehrere unabhängige Apps)

8

Wir versuchen, eine Portalanwendung mit mehreren / unabhängigen "Sub-Apps" zu erstellen. Unter der Annahme, dass alle Unteranwendungen in Angular geschrieben sind, ist ein gutes Muster, um die folgenden Ziele zu erreichen.

  1. Jede App kann unabhängig voneinander entwickelt und bereitgestellt werden.
  2. Sie teilen einen gemeinsamen Authentifizierungsdienst, sie können gemeinsame Bibliotheken (Direktiven, Filter usw.) gemeinsam nutzen.
  3. Nur eine App ist zu jeder Zeit sichtbar und aktiv. Der Umfang jeder Sub-App ist voneinander isoliert.
  4. Wenn die Benutzer zwischen den Unteranwendungen wechseln, wird der Status beibehalten, solange der Benutzer die Seite nicht aktualisiert oder eine andere statische Verbindung besucht. (Ich denke, dass dies in Angular eingebaut ist und keine besonderen Anstrengungen nötig sind)
  5. Jede Sub-App wird mehr als eine Sichten haben (es wird ein eigenes Menü haben). Es wird ein Top-Menü geben, basierend darauf, welche Sub-Apps verfügbar sind. Im Idealfall wird das oberste Menü basierend auf den bereitgestellten Sub-Apps dynamisch erstellt. Vielleicht gibt es eine serverseitige Komponente dazu (der Server erkennt die Ordnerstruktur usw. und bestimmt, welche Apps bereitgestellt werden und injiziert den notwendigen js-Code in die Seite).

Angesichts der Tatsache, dass AngularJs keine mehrstufige Ansichtsstruktur hat, dachte ich daran, mehrere ng-app-Deklarationen auf verschiedenen divs zu verwenden und dann $ window scope zu verwenden, um den Schlüssel der aktiven App zu speichern und diejenigen auszublenden, die das sind nicht aktiv.

    
Ketan 08.12.2012, 05:47
quelle

2 Antworten

1

Es gibt keine einfache Antwort auf Ihre (eher offene) Frage, aber in Bezug auf die $ route- und ngView-Einschränkungen habe ich großen Erfolg mit einer Technik, die sich daraus ergibt: Ссылка

    
Tiago Roldão 08.12.2012, 18:51
quelle
0

Dies ist etwas, an das ich auch gedacht habe, es zu implementieren. Obwohl ich keine vollständige funktionierende Lösung habe, glaube ich, dass diese Art von Portal-App aus mehreren winkelförmigen Apps auf derselben Seite bestehen würde.

Die Portal-App wäre die traditionelle ng-app-Direktive auf der Hauptseite, und die "Portlets" würden dynamisch erstellt und winklige Apps in einer Sub-View-div manuell hochgestuft werden. Sie können Daten, Status, Authentifizierung, Personalisierung usw. durch das Injizieren der Portaldienste (die in ihrem eigenen Modul enthalten sind), die diese Funktionen in den manuell zu startenden Portlet-Apps bereitstellen, nutzen.

Der knifflige Teil ist, wie die Portal-App die Portlet-Apps entdecken und ihre kantigen Module mit der Gewissheit ausstatten würde, dass diese Apps unabhängig bereitgestellte Web-Apps mit ihren eigenen URLs wären.

Ich habe immer noch einige Fragen, ob die Servicedaten zwischen den Apps übereinstimmen oder ob Sie den lokalen HTML5-Speicher über den Portalservice (wie einen Datenmanager) nutzen möchten.

    
BoxerBucks 08.11.2013 15:48
quelle

Tags und Links