J'ai un projet Angular 4.3.6 où un extrait de modèle produit cette erreur.
Bloc de modèle:
<a [routerLink]="['/article',article?.id]">{{article?.title}}</a>
Trace de pile d'erreur:
ArticleSpComponent.html:26 ERROR TypeError: Cannot read property 'outlets' of null
at createNewSegmentGroup (router.es5.js:2967)
at updateSegmentGroup (router.es5.js:2896)
at router.es5.js:2914
at forEach (router.es5.js:593)
at updateSegmentGroupChildren (
La cause de l'erreur semble évidente. La variable article est récupérée asynchrone à partir de Http et initialisée après le rendu de la page, donc elle est d'abord nulle. Cependant, je pensais que mettre? après cette variable permet d'éviter ce problème.
Pouvez-vous me conseiller?
?
dans article?.id
fonctionne bien, mais la directive RouterLink
n'aime pas faire passer un null
.
Vous pouvez contourner l'utilisation de quelque chose comme:
<a *ngIf="article" [routerLink]="['/article',article?.id]">{{article?.title}}</a>
<a *ngIf="!article">{{article?.title}}</a>