Angulaire 2: demander à l'Enfant de Route Composant de Remplacer les Parents dans le routeur de sortie
Est-il un moyen pour afficher un enfant de route dans le parent de l'itinéraire <router-outlet>
?
Par exemple, disons que nous avons deux itinéraires:
/users/12345
/users/12345/orders/12345
J'ai besoin de l'autre pour être un enfant de la première, mais j'ai aussi besoin de remplacer complètement le contenu de /users/12345
avec le contenu de /users/12345/orders/12345
plutôt que d'avoir /users/12345/orders/12345
dans le /users/12345
sous router-outlet
.
Je pensais que je pouvais le faire simplement en nommant le niveau parent routeur-prise et les deux voies de la cible, mais à partir de la recherche, je l'ai fait (et les erreurs qu'il a causé) j'ai le sentiment que les noms étaient destinés à des utilisations secondaires quand il existe déjà un routeur principal-prise
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. C'est la façon dont je l'ai corrigé:
Vous pouvez le faire en définissant des routes, comme ceci :
ParentComponent
's modèle aura seulement la<router-outlet>
à la charge de ses enfants.Si vous avez besoin de cacher quelque chose (comme une grille de données, ou l'instruction panneau), basé sur un enfant de l'itinéraire actif vous pouvez simplement utiliser ce:
Il est important d'inclure
#sortie="sortie"
avec des guillemets parce que vous êtes à l'exportation d'un modèle de référence de variable.Il y a aussi des événements sur
router-outlet
pour l'activation et de désactivation.Une alternative est de obtenez de l'enfant itinéraire lorsque le
NavigationEnd
événement se produit, et de prendre des décisions que de les afficher ou les masquer. Pour les cas les plus simples, la première approche devrait fonctionner correctement.Pas non pertinentes à votre question, je ne pense pas, mais vous pouvez masquer complètement un
router-outlet
avec un*ngIf
comme vous le feriez pour tout autre chose.modifier: je suis venu avec une nouvelle solution tournant autour de l'utilisation des directives de modèle qui permet la configuration des voies hiérarchiquement contre au même niveau.
L'exemple de code/la version de démonstration peut être trouvé ici: https://stackblitz.com/edit/angular-routing-page-layout