J'essaie de construire des itinéraires dynamiquement à partir de Angular2 (Fetch Route Config à partir du serveur), après cela, je l'analysse et générez des instructions pour la route des composants (j'ai des itinéraires parent config et que l'enfant dans différents composants, car je ne sais pas comment définir Route de la composante enfant dans un fichier Main.App.TS).
Le problème est lorsque l'application a démarré et essayez de créer des itinéraires config et Routegenerator n'est pas encore de construction (ASYNC Retard) peut J'essaie aussi de mettre à jour les itinéraires de la même manière (mais l'application est écrasée immédiatement parce que mon lien de navigation Le composant de navigation n'a pas de manière correcte de lien) p> Mes définitions d'itinéraire utilisent la chargeur asynchreux afin qu'ils soient corrects et travaillent avec le délai d'asynchronisation. Je ne sais pas comment faire une attente angulaire pour mes itinéraires définitions et THET commencez à exécuter l'application. P> S'il vous plaît, aidez-moi. Merci. P> upd: strong> p> @Thierry Merci beaucoup pour votre aide. Vous êtes génial mon ami et mon mentor. Une dernière question (dernier). Pouvez-vous me dire comment puis que je puisse définir la roueConfig en un fichier d'application avec la définition de sous-management des enfants?
C'est méchant. J'ai des itinéraires de niveau principaux dans les fichiers d'application p> T Parse TheTes Data (car ASYNC Delay, donc les routresData indéfini maintenant) et l'application est Crashig. Je n'ai pas code> t sais que faire avec cela. À la recherche d'une hotte de cycle de vie (certains comme - @ angular2beforeAppstarté) mais rien trouvé. P>
{
path: '/', // root is appRoot/patients/...
name: 'PatientsList', component...},
{
"name": "Chart",
"path": "/chart/:id", component...
},
4 Réponses :
Une option pourrait être d'obtenir votre configuration avant de bootstrer votre application.
[ { path: '/', // root is appRoot/patients/... name: 'PatientsList', component... }, (...) ]
Vous pouvez exploiter la méthode Observable.ForkJoin pour charger votre configuration de route à partir de différentes demandes: P> [
{
path: '/patients/...',
name: 'Patients',
component: PatientsComponent,
childRoutes: [
{
path: '/', // root is appRoot/patients/...
name: 'PatientsList', component...
},
(...)
]
}
]
Thierry Merci de répondre, je vais essayer cela maintenant. Mais j'ai une autre question à ce sujet. À l'heure actuelle, je conserve mes itinéraires configuration dans 2 fichiers et l'inclure en 2 composants différents (une route principale pour App.Main, deuxième - route, pour patient (par exemple)). IT S Possible Joignez-vous IT CODE> S Route Config et Bootstrap IT uniquement dans App.TS Fichier?
De rien! Oui, vous pouvez exploiter la méthode Observable.Forkjoin pour cela ... J'ai mis à jour ma réponse (l'injection reste la même).
Merci beaucoup à Thierry. Donc, lorsque je reçois ces données et que je la fournisse dans l'application principale, dois-je devoir utiliser Router.Config dans Constructeur d'applications au lieu de @ROUTECONFIG Decorator? Parce que je ne sais pas comment obtenir la configuration de l'injecteur pour @ROUTECONFIG. Désolé, s'il vous plaît, pour des questions factices.
J'ai mis à jour mon premier post avec question pour vous @thierry. Pouvez-vous regarder cela, s'il vous plaît?
Je comprends toi =) merci. Vous êtes absolutelly à droite (mon json même comme votre exemple). Mais est-il possible de définir la route.config pour l'application principale. Fichier (et configuration itinéraire.config - pour la déchets de patients) uniquement dans le fichier d'application principal (sans configuration de l'itinéraire dans la patienceListComponenr? (Après la démolition de l'application, je souhaite configurer la configuration de route dans l'application Fichier (pour la parente - App, ANG ENFANT - Liste des patients). Est-ce réel? Et comment faire cela si c'est réel (quand dans la route.config, nous n'avons besoin que d'une seule définition de routeur pour un composant). I Absolutelly coincé avec ceci.
Laissez-nous Continuez cette discussion en chat .
Vérifiez ceci: Dynamicalasyncrouter p>
Dans le nouveau routeur (> = rc.3 code>) https://angular.io/docs/js/latest/api/router/index/router-class.html#!#Resetconfig-anchor RESETCONFIG CODE> Peut être utilisé
router.resetConfig([
{ path: 'team/:id', component: TeamCmp, children: [
{ path: 'simple', component: SimpleCmp },
{ path: 'user/:name', component: UserCmp }
] }
]);
Utilisation d'observables / Promises à fournir des traductions de la route n'est pas une solution fiable, d'où le routeur angulaire s'attend à ce que l'itinéraire [] ou les itinéraires, mais une demande HTTP ne peut que renverser / promettre. P>
L'application angulaire est initialisée, mais le processus de récupération des traductions de la route continue d'utiliser des observables / promesses. P>
Comme Thierry Templier l'a dit, pour obtenir votre configuration avant de démarrer votre application résoudrait le problème. P>
Aussi, cochez la case @ ngx-i18n-routter / noyau sur github. p>
RouterOutlet Code> est déjà contenu dans
Router_Directives Code>, pas besoin de l'ajouter à nouveau.
Comment
routegeninstance.getrouedéfinitions () code> ressemble? Qu'est-ce qu'il retourne?