1. 程式人生 > >ngFor迴圈出來的陣列,在判斷上區別可以自定義一個屬性給迴圈出來的當前陣列,供使用

ngFor迴圈出來的陣列,在判斷上區別可以自定義一個屬性給迴圈出來的當前陣列,供使用

例如:迴圈出來了一個列表,要求點選不同的專案時,被點選的背景色改變為黃色,字型顏色改變為白色。由於是ngFor迴圈的所以每一項的類和DOM都是相同的所以很容易造成所有顏色都改變。這個時候給當前的列表定義一個屬性:list.classtype就是給list定義了classtype屬性。然後在用迴圈遍歷來確定當前點選的,將當前點選的和未點選的區分開來。然後進行樣式和事件處理。

下面這個例子是對樣式的改變。當點選某一個按鈕的時候按鈕顏色改變,其餘顏色不變。

html:

<span  *ngFor="let list of FQAList;let i=index" (click)="colorChange
(i)"> <li *ngIf="list.hot=='1'"> <a [ngClass]="{'yellow':list.classtype}" href="{{WebUrl}}" >{{list.name}}</a> </li> </span>
ts
   // 點選改變背景色
public colorChange(i){
    console.log(i);//接收到當前點選的下標
console.log(this.FQAList[i].type_id+"id");
this.FQAList[i].classtype 
= true; for(var j=0;j<this.FQAList.length;j++){ //做一個迴圈判斷,當迴圈的j==i的時候改變背景色。不等的時候也就是其他值的情況下不改變 if(j != i){ this.FQAList[j].classtype = false; } }