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

时间:2017-08-28 09:42:49

标签: angular angular-router

我有Angular 4.3.6项目,其中模板片段会产生此错误。

模板块:

function makeCreator(obj) { return (...args) => { let { type: obj.type, ...exceptType } = obj; Object.keys(exceptType).forEach((key, index) => { exceptType[key] = args[index]; }); return { type: obj.type, ...exceptType, }; } }

错误堆栈跟踪:

<a [routerLink]="['/article',article?.id]">{{article?.title}}</a>

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

你能告诉我吗?

2 个答案:

答案 0 :(得分:27)

?中的{p> article?.id工作正常,但RouterLink指令并不想让null通过。

你可以使用类似的东西:

<a *ngIf="article" [routerLink]="['/article',article?.id]">{{article?.title}}</a>
<a *ngIf="!article">{{article?.title}}</a>

答案 1 :(得分:0)

 <a  [routerLink]="['/language',language.iso639_1 || 'all']" >{{language.name}}</a>

我也面临着同样的问题(无法读取null的属性“插座” ),但我编写的上述代码对我有用。