?
在 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';
}
}