Ich habe eine Anwendung mit einem komplexen Layout, in der der Benutzer Widgets (per Drag & Drop) (durch Auswahl aus einem vordefinierten Satz von mehr als 100 Widgets) platzieren kann, wobei jedes Widget eine benutzerdefinierte Implementierung ist, die einen Datensatz anzeigt (mit REST-Aufruf abgerufen). auf eine bestimmte Weise. Ich habe unzählige Blog-Beiträge, Fragen zum Stackoverflow und die offiziellen AngularJS-Dokumente gelesen, kann aber nicht herausfinden, wie ich meine Anwendung so gestalten soll, dass sie den Anforderungen entspricht. Bei Demo-Apps gibt es ein einzelnes Modul (ng-app), und beim Erstellen in der .js-Datei werden die abhängigen Module als Abhängigkeiten deklariert. Ich habe jedoch eine große Anzahl von Widgets und es ist irgendwie nicht ratsam, sie alle zu beschreiben Dort. Ich brauche Vorschläge für die folgenden Fragen:
- Wie soll ich meine App und Widgets gestalten - sollte ich ein separates AngularJS-Modul haben oder sollte jedes Widget eine Direktive zum Hauptmodul sein?
- Wenn ich mein Widget als Direktiven entwerfe, gibt es eine Möglichkeit, die Abhängigkeit innerhalb einer Direktive zu definieren. Das heißt, dass meine Richtlinie bei ihrer Umsetzung ng-Kalender verwendet?
- Wenn ich jedes Widget als separates Modul entwerfe, gibt es eine Möglichkeit, das Widget-Modul dynamisch als Abhängigkeit zum Hauptmodul hinzuzufügen?
- Wie soll ich die Controller entwerfen - wahrscheinlich einen Controller pro Widget?
- Wie soll ich den Status (Bereich) trennen, wenn ich mehrere Widgets desselben Typs in der Ansicht habe?
- Gibt es Best Practices für das Entwerfen wiederverwendbarer Widgets mit AngularJS?
BEARBEITEN
Nützliche Referenzen:
- ocLazyLoad - großartige Lazy Loading Lib für AngularJS
- Seed-Projekt - Module + verzögertes Laden bei Routenänderung (ES6, systemjs, ocLazyLoad)
- Faules Laden in AngularJS
- Dynamisches Laden von Controllern und Ansichten mit AngularJS und RequireJS
- Laden von AngularJS-Komponenten mit RequireJS nach dem Bootstrap der Anwendung
- Demo-Projekt zum verzögerten Laden von AngularJS-Ressourcen auf GitHub
- Load On Demand-Projekt
- Modul nur bei Bedarf dynamisch injizieren
- Ein weiteres faules Laden im Angular-Artikel
- Code-Organisation in Large AngularJS- und JavaScript-Anwendungen