[英]How to use ngClass with table in Angular
我有一個表,要在其中聲明ngClass(第一行)
<table [ngClass]="{'before_forth': pageNumber < 4, 'forth': pageNumber = 4}">
<tr id="words" *ngFor="let item of itemsSource3; let i = index;">
<td *ngFor="let item2 of helper[i]; let j = index;">
<input class="resizedTextbox" name="{{i}}{{j}}"
[(ngModel)]="helper[i][j].value" (ngModelChange)="onValueChange(f,i)"/>
</td>
{{item}}
</tr>
</table>
我的CSS是
table.forth.td:nth-child(2){background-color: green}
table.forth.td:nth-child(5){background-color: green}
table.before_forth.td:nth-child(2){background-color: red}
table.before_forth.td:nth-child(5){background-color: red}
所以,我想做的就是設置顏色,這取決於頁面的數量(在我的組件中,我使用此方法
this.pageNumber = this.activatedRoute.snapshot.queryParams['page'];
在其他情況下也可以正常工作(我經常使用)
我猜問題出在這段代碼table.forth.td:nth-child
中的CSS中,您能告訴我什么是訪問表中類的正確方法嗎?
您應該使用pageNumber === 4
而不是pageNumber = 4
,因為那樣的話您只是分配變量:
<table [ngClass]="{'before_forth': pageNumber < 4, 'forth': pageNumber === 4}">
第二個問題是css規則,您在其中使用.td
類,即使html中沒有使用它。 我的猜測是您要定位表內的<td>
元素:
table.forth td:nth-child(2){background-color: green}
table.forth td:nth-child(5){background-color: green}
table.before_forth td:nth-child(2){background-color: red}
table.before_forth td:nth-child(5){background-color: red}
第三個問題是在<td>
標記之外使用{{item}}
。 這是無效的html
,將導致不良行為,您應該將其移至td
另外,請勿將id
內部與*ngFor
結合使用。 具有id的元素在整個頁面中應該是唯一的。 實際上,如果您沒有特殊用途,最好不要使用id:
<table [class.before_forth]="pageNumber < 4" [class.forth]="pageNumber === 4">
<tr *ngFor="let item of itemsSource3; let i = index;">
<td *ngFor="let item2 of helper[i]; let j = index;">
<input class="resizedTextbox" name="{{i}}{{j}}" [(ngModel)]="helper[i}[j].value" (ngModelChange)="onValueChange(f,i)">
{{item}}
</td>
</tr>
</table>
最后一點是,的正確拼寫4th
是四 ,不要出去 ,但是這只是一個供參考)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.