如果不是角度< 4.3.6。
目前在显示或编辑模板中未定义gradingKey
对象。
在getTemplate(gradingKey)方法中没有未定义。
gradingKey在
中初始化为类字段组件
@Input() set gradingKeyModel(gradingKeyModel: GradingKeyModel) {
this.gradingKey = gradingKeyModel.gradingKey;
}
HTML
<ng-template [ngTemplateOutlet]="getTemplate(gradingKey)"
[ngTemplateOutletContext ]="{ $implicit: gradingKey }">
</ng-template>
<ng-template #displayTemplate let-gradingKey>
<div>
{gradingKey}}
</div>
</ng-template>
<ng-template #editTemplate let-gradingKey>
<div>
{{gradingKey}}
</div>
</ng-template>
为什么模板内的gradingKey突然未定义?
使用ngTemplateOutletContext时,如何更改ngOutletContext的访问方式?
答案 0 :(得分:0)
我看到2个问题可能会解决该问题。 ngTemplateOutlet
需要包装在ng-container
中。您传递了ngTemplateOutletContext
$ implicit变量(很好),但是尝试将其更改为如下所示的显式变量:
<ng-container [ngTemplateOutlet]="getTemplate(gradingKey)"
[ngTemplateOutletContext ]="{ gradingKey: gradingKey }">
</ng-container>
<ng-template #displayTemplate let-gradingKey="gradingKey">
<div>
{gradingKey}}
</div>
</ng-template>