无法在Angular 4中读取null的属性'outlet'

Ser*_*gey 18 angular angular-router

我有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 (
Run Code Online (Sandbox Code Playgroud)

错误原因似乎很明显.article变量从Http获取异步并在页面呈现后初始化,因此首先它为null.不过我认为那么推?在此变量之后允许避免此问题.

你能给些建议么?

Gün*_*uer 37

?在文章?.id工作正常,但article?.id指令不喜欢得到RouterLink传递.

您可以使用以下方法解决:

<a *ngIf="article" [routerLink]="['/article',article?.id]">{{article?.title}}</a>
<a *ngIf="!article">{{article?.title}}</a>
Run Code Online (Sandbox Code Playgroud)

  • 我最终使用了一个类似的解决方案,传递了默认路由:`[routerLink] ="['/ article',article?.id ||'all']"` (6认同)