Angular 4.3.6プロジェクトでテンプレートスニペットがこのエラーを生成します。
テンプレートブロック:
<a [routerLink]="['/article',article?.id]">{{article?.title}}</a>
エラースタックトレース:
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 (
エラーの原因は明らかなようです。 article変数はHttpから非同期にフェッチされ、ページがレンダリングされた後に初期化されるため、最初はnullです。しかし、私は置くと思った?この変数を使用すると、この問題を回避できます。
あなたがアドバイスしていただけますか?
?
in article?.id
は正常に機能していますが、RouterLink
ディレクティブはnull
が渡されるのを好みません。
次のようなものを使用して回避できます。
<a *ngIf="article" [routerLink]="['/article',article?.id]">{{article?.title}}</a>
<a *ngIf="!article">{{article?.title}}</a>