0
votes

Paramètre ne retourne pas dans ActivateDroute

Je ne peux pas obtenir le paramètre de l'itinéraire, il doit ensuite appeler une fonction dans le composant qui appelle ensuite au service.

Je l'ai ajouté au constructeur car je croyais qu'il ne passerait peut-être pas à passer à temps si c'est à Nginit mais toujours pas de chance.

J'ai ajouté une console.log et il s'agit simplement d'imprimer NULL et je peux le voir appeler la fonction mais ne pas passer le paramètre.

Je suis sûr qu'il est super basique et je viens de faire une erreur quelque part.

app.module.ts xxx

app.common.ts xxx


2 commentaires

Avez-vous essayé de le faire dans Ngoninit () Méthode de cycle de vie?


@Amitchigadani Oui


4 Réponses :


0
votes

Pouvez-vous essayer d'obtenir un instantané d'itinéraire actionné à l'intérieur Ngoninit strong> comme ceci; xxx pré>

ou vous pouvez vous abonner à une itinéraire comme ceci; p>

ngOnInit() {
  this.route.paramMap.subscribe(params => {
    this.tapCode = this.route.snapshot.paramMap.get('tapcode');
  })
}


2 commentaires

Aucun accord, retourne toujours null sous abonnement. J'ai déjà essayé de placer cela sous Nginit au lieu du constructeur et de même résultat.


Hey @hylien, pouvez-vous partager votre code via Stackblitz?



0
votes

Ne changez maintenant que dans APP.COMPONENT.TS

 constructor(
private route: ActivatedRoute,
private router: Router,
private dataService: DataService) {

this.route.paramMap.subscribe((param=>{ this.tapCode=param.get('tapcode')
}));     
console.log(this.tapCode);
this.getScreen(this.tapCode);}


3 commentaires

Vous êtes déjà sur le composant parent, vous devez déclarer le même composant qu'un enfant si vous souhaitez transmettre des données au même composant


Aucun accord :( - Retourne juste indéfini.


Non - retourne juste null. Je crois que c'est à faire avec github.com/angular/angular/issues/19420



0
votes

Vous pouvez obtenir des paramètres de route directement à l'intérieur des params.tapcode.

constructor(
    private route: ActivatedRoute,
    private router: Router,
    private dataService: DataService) {

   // this.tapCode = this.route.snapshot.paramMap.get('tapcode');

    this.tapCode = this.route.snapshot.params.tapcode; //try this
    console.log(this.tapCode);
    this.getScreen(this.tapCode);
  }


3 commentaires

J'ai un traçage activé et peut le voir étant reconnu comme tapcode: valeur mais je ne peux pas le sortir de l'objet - montrant toujours comme non défini.


Vous avez peut-être essayé cela.Route.snapshot.params ['TapCode']. Ou pouvez-vous montrer une capture d'écran de traçage?


Oui j'ai essayé cela. En fait, je pense que cela peut être dû à: Github.com/angular/angular/issues/19420< A>, Trace Sortie ci-jointe ici: imgur.com/a/nvtwcdl



0
votes

Le problème était que les données n'étaient pas disponibles dans ActivateDroute, uniquement dans Activationend, car il a été saisi manuellement dans la barre d'adresses. xxx


0 commentaires