Comment obtenir l'Itinéraire de données en Application de la Composante Angulaire 2
J'ai défini une route de données de mon application module de routage comme ci-dessous:
const appRoutes:Routes = [
{path: '', component: LoginComponent, data:[{PageName:"Login Page"}]}]
Je veux obtenir les données à l'échelle mondiale afin que je puisse utiliser appRoutes dans l'app.composante.ts pour obtenir l'URL de redirection de l'information connexe comme ci-dessous:
export class AppComponent {
title = 'Welcome';
constructor(public router: Router, public authenticationService: AuthenticationService) {
this.router.events.subscribe(event => {
console.log("Url",event.urlAfterRedirects);
console.log("Page Name", router[PageName]); //Not working
}
J'ai essayé d'injecter ActivatedRoute mais il n'est pas mis à jour après chaque redirection.
Est-il de toute façon, où je peux configurer le nom de la page et le faire dans global app.component.ts
.
OriginalL'auteur user1188867 | 2017-04-20
Vous devez vous connecter pour publier un commentaire.
Essayer de
filter
et boucle de vos événements au lieu desubscribe
Veuillez vérifier les points suivants de travail de démonstration: https://plnkr.co/edit/rBToHRaukDlrSKcLGavh?p=info
Pouvez-vous créer un plunker? Il est difficile de vous aider comme ça. Comme vous le voyez mon travail démo fonctionne, donc nous sommes très proches de résoudre votre problème 🙂
Je prie de m'excuser Son d'un gros projet avec plusieurs modules, je ne peux pas créer plunker.
ok, je comprends 🙂 Maintenant, je vois une petite différence entre mon exemple et votre code. Dans le parcours de tableau pour la
data
propriété à l'aide d'un tableau:data:[{PageName:"Login Page"}]
Pouvez-vous essayer mon exemple avec un objet:data:{PageName:"Login Page"}
. Peut-être pour cela, vous recevezundefined
.Grâce Eftimov, Il a travaillé 🙂 j'ai changé de tableau à l'objet, et depuis que j'ai plusieurs modules dans le projet, j'ai ajouter un peu plus de code comme ci-dessous : var pageName = route.de la racine.firstChild.de l'instantané.data['trackPageName']; if(!pageName) pageName = route.de la racine.firstChild.de l'instantané.firstChild.data['trackPageName'];
OriginalL'auteur Hristo Eftimov
Si vous aviez statiquement routés à l'aide du Routeur objet comme ci-dessous:
Sur ngOnInit (), vous pouvez utiliser ActivatedRoute objet de récupérer les données que vous avez passé de Routeur définition:
Obs: je suis en utilisant Angulaire 5!
pouvez-vous poster un stackblitz lien?
meilleure réponse par ici!
la route est ActivatedRoute de @angulaire/routeur
Cette approche fonctionne pour les composants qui font partie de l'itinéraire composant de routage. Cette approche ne pas travail au sein de la racine de l'application composant lui-même. lorsque
ngOnInit
est appelé la racine de l'application composant comme demandé,snapshot.data
est un objet vide.OriginalL'auteur Pablo
Angulaire 5+
Ce service récupère les données sur l'itinéraire actuel: (dans mon cas, "titre")
Composant Logique:
OriginalL'auteur FaustmannChr
OriginalL'auteur sainu