Ist es möglich, dynamische Routen in Winkel 2 hinzuzufügen? [Duplikat]

9

Ich baue ein cms, wo ein Benutzer auswählen kann, welche Seiten zu verwenden sind. Wenn der Benutzer also eine Kontaktseite möchte, wählt er sie aus und füllt sie mit Inhalt aus, und ihre Site würde beispielsweise eine contact Route haben. Auf dieser Grundlage ist es möglich, Routen in eckigen dynamisch hinzuzufügen, basierend darauf, ob ein Benutzer eine bestimmte Seite möchte oder nicht?

    
xaisoft 21.03.2017, 13:04
quelle

1 Antwort

18

Ja. Es gibt mehrere Möglichkeiten, um das zu erreichen, was Sie wollen. Sie können router.resetConfig verwenden, um die Konfiguration des Routers mit einer neuen Konfiguration zurückzusetzen:

%Vor%

Sie können auch push routes auf die config:

%Vor%

Ein anderer Weg, den ich hier gemacht habe, ist, dass Benutzer Seiten mit etwas wie TinyMCE erstellen und den URL-Pfad angeben können, den die Seite haben soll. In Angular habe ich eine Wildcard-Route im Router mit { path: '**', component: ComponentBuilder } angegeben, wobei die ComponentBuilder-Komponente die Vorlage aus der Datenbank abruft, die dem angeforderten Pfad entspricht, und dann die Komponente dynamisch mit der Vorlage generiert. Wenn eine Vorlage in der Datenbank nicht vorhanden war, wurde eine normale Page cannot be found Vorlage gerendert.

Beide Wege funktionieren. Es kommt darauf an, wie Ihre Anwendung funktionieren soll und wie Sie die Seiten erstellen, die Benutzer erstellen.

Es gibt eine Menge mehr Dokumentation und Beispiele zum Erstellen dynamischer Komponenten seit der Lösung, die ich in Version 2 rc4 entwickelt habe. Ich habe keines davon benutzt, aber es sieht hilfreich aus:

NPM-Paket für dynamische Komponenten

Angular Docs beim Laden dynamischer Komponenten

Komponenten dynamisch erstellen

Ein weiterer Artikel zum dynamischen Erstellen von Komponenten

    
Tyler Jennings 21.03.2017, 13:16
quelle

Tags und Links