Angular 8 - 根据它的ID动态显示/隐藏<div>?



在 Angular 8 组件中,我动态创建<table>元素。

因此,创建了 x 数量的<table>(基于输入数组(。

每个<table>的最后<tr>包含一个<div>和一个按钮。

单击按钮时,此<div>需要在显示/隐藏之间切换。

我可以同时显示/隐藏所有内容,但需要显示/隐藏一个。

是否可以根据其id显示/隐藏动态创建的<div>

我相信这样的事情应该有效,但无济于事。

<ng-template let-scores pTemplate="listItem">
...
<tr>
<div id='scores.modRef'>my div</div>
<button (click)='showHide(scores.modRef)'></button>
</tr>
showHide(modRef) {
// hide the <div> with id == modRef
}

我尝试了许多不同的方法,但没有一种奏效。

任何帮助不胜感激!

由于隐藏/显示最终可能会发送到后端,因此最好在分数中添加一个属性并将其称为"可见",这样您可以这样做:

<ng-template let-scores pTemplate="listItem">
...
<tr>
<div id='scores.modRef' *ngIf="scores.visible">my div</div>
<button (click)='showHide(scores)'></button>
</tr>

然后:

showHide(scores) {
scores.visible = !scores.visible;
}

试试这段代码

<ng-template let-scores pTemplate="listItem">
...
<tr>
<div [id]="scores.modRef" >my div</div>
<button (click)='showHide(scores.modRef)'></button>
</tr>
status: boolean = false;
showHide(modRef) {
// hide the <div> with id == modRef
const nId = modRef.toString(); 
this.status = !this.status;
if(this.status) {
document.getElementById(nId).style.display = 'none';
} else {
document.getElementById(nId).style.display = 'block';
}
}

最新更新