Hel*_*rld 4 angular-template angular
如果 angular < 4.3.6 不适用,该代码至少适用于 angular 2。
目前gradingKey对象在显示或编辑模板中是未定义的。
它在 getTemplate(gradingKey) 方法中不是未定义的。
gradingKey 被初始化为类字段
成分
@Input() set gradingKeyModel(gradingKeyModel: GradingKeyModel) {
this.gradingKey = gradingKeyModel.gradingKey;
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
为什么模板中的 gradingKey 突然未定义?
使用 ngTemplateOutletContext 时,访问 ngOutletContext 的方式是否发生了变化?
ssu*_*ski 12
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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7274 次 |
| 最近记录: |