gpt4 book ai didi

javascript - 为什么 ng-container 显示我的 td 标签和模板元素不显示我的 td 标签?

转载 作者:行者123 更新时间:2023-11-30 21:09:44 27 4
gpt4 key购买 nike

我要显示td如果我的陈述属实,请标记。所以我正在使用 <template>元素来检查该条件。 但在渲染屏幕后我看不到 td template 内的标签元素

enter image description here

<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>元素。

enter image description here

<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>

问题:-

  • Why ng-container does show my td tag and template element does not shows my td tag?

  • Explain when I would use ng-template instead of ng-container?

最佳答案

你应该像这样使用 ng-template

<ng-template [ngIf]="condition"><div>...</div></ng-template>

ng-container 的不同之处在于,您可以使用像这样的指令 *ngFor 需要模板,但它不会在 html 中创建任何内容。

<ng-container *ngFor="let item of items">{{item }}</ng-container>

但是当你使用ng-template时你需要写成完整的形式

<ng-template ngFor let-item [ngForOf]="items" let-i="index" 
[ngForTrackBy]="trackByFn">
<li>...</li>
</ng-template>

另见

关于javascript - 为什么 ng-container 显示我的 td 标签和模板元素不显示我的 td 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46274106/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com