2017-05-12 69 views
0

在模板中的for循環中,我希望有一些editable切換標誌來顯示和隱藏每個迭代項目的東西。該項目可能是一個例子。Angular2中的ngFor循環中的本地模板temp變量

我只是無法弄清楚如何輕鬆地創建一個局部變量。我不想爲每行或某個指令創建一個組件。因爲在Angular1中,你可以只需ng-init="editable=false",而在子女的某個地方,你可以切換到editable=!editable,這是在這個特定的孩子的範圍內,這是有道理的。

請幫我改進一下,目前這會切換所有的行。我需要每行有局部變量。

<div *ngFor="let c of comments"> 
    <button (click)="editable=!editable">edit</button> 
    <p *ngIf="editable"><textarea>{{c.message}}</textarea></p> 
</div> 

如何在angular2〜4中做到這一點?

+1

爲什麼不只是使每個「評論」的屬性「可編輯」?即使數據需要到別處,根據需要去除或添加屬性也是非常簡單的。 –

回答

2
<div *ngFor="let c of comments;let i=index"> 
    <button (click)="toggleEditable(i)">edit</button> 
    <p *ngIf="editable[i]"><textarea>{{c.message}}</textarea></p> 
</div> 
editable = [true, false, true]; 

toggleEditable(idx) { 
    this.editable[idx] = !this.editable[idx]; 
} 

editable需要具有相同數量的值的作爲comments