【发布时间】:2018-02-26 16:25:48
【问题描述】:
如果我的陈述属实,我想显示td 标签。所以我使用<template> 元素来检查这种情况。 但在渲染屏幕后,我在template 元素中看不到td 标记。
<table class="ui-grid-row ui-row" style="width:100%; table-layout:fixed" cellspacing="0">
<tr style="width:100%">
<td style="width:5%" class="ui-border" [ngClass]="{ odd: odd, even: even }">{{datavalue.FieldPrefix}}</td>
<td style="width:30%" class="ui-border" [ngClass]="{ odd: odd, even: even }">{{datavalue.FieldName}}</td>
**//here am using template element**
<template *ngIf="datavalue.IsOverridable">
<td style="width:59%" class="ui-border" [ngClass]="{ odd: odd, even: even, highlight:datavalue.IsMandatoryElementDataMissing}"
(click)="AddNewDialog(datavalue)">
<span *ngIf="!datavalue.IsMultiRowExist" [innerHTML]="datavalue.FieldValueCobmination==null?'':datavalue.FieldValueCobmination"></span>
<span class="grid leftalign" *ngIf="datavalue.IsMultiRowExist"><img class="image" title="Multi Line" src="assets/images/MultiLine.png" /></span>
</td>
</template>
</tr>
</table>
但如果我使用 <ng-container> 元素而不是 <template> 元素,它可以正常工作。
<table class="ui-grid-row ui-row" style="width:100%; table-layout:fixed" cellspacing="0">
<tr style="width:100%">
<td style="width:5%" class="ui-border" [ngClass]="{ odd: odd, even: even }">{{datavalue.FieldPrefix}}</td>
<td style="width:30%" class="ui-border" [ngClass]="{ odd: odd, even: even }">{{datavalue.FieldName}}</td>
**//here am using ng-container element**
<ng-container *ngIf="datavalue.IsOverridable">
<td style="width:59%" class="ui-border" [ngClass]="{ odd: odd, even: even, highlight:datavalue.IsMandatoryElementDataMissing}" (click)="AddNewDialog(datavalue)">
<span *ngIf="!datavalue.IsMultiRowExist" [innerHTML]="datavalue.FieldValueCobmination==null?'':datavalue.FieldValueCobmination"></span>
<span class="grid leftalign" *ngIf="datavalue.IsMultiRowExist"><img class="image" title="Multi Line" src="assets/images/MultiLine.png" /></span>
</td>
</ng-container>
</tr>
</table>
问题:-
为什么
ng-container确实显示了我的td标记,而template元素没有显示我的td标记?说明我什么时候会使用
ng-template而不是ng-container?
【问题讨论】:
-
我知道
template是tr标签中的无效元素。 -
@SankarRaj 那么将 ng-template 放入 tr 标签呢?
-
它将由角度来处理...模板是角度指令吗?如果我错了,请纠正我。
-
模板如果不是角度指令。它的 html 标记阻止在浏览器中呈现它,但您可以通过 javascript 呈现它:-)
标签: javascript html angular angular2-template ng-container