Вы используете единственное логическое значение для управления переключением для всех элементов в gDatas
. Поэтому, если для toggelFlagve
установлено значение true, *ngIf
в вашем шаблоне будет иметь значение true для всех членов цикла *ngFor
.
Вместо этого у вас есть логический ключ «toggle» для каждого члена gDatas
, который изменяется на true при нажатии на элемент кнопки:
//your component template
<ion-row *ngFor="let item of gDatas; index as i">
<ion-col col-1>
<button (click)="toggleSection(i)" detail-none
[ngClass]="{'section-active1': item.toggle, 'section1': !item.toggle}">
<ion-icon item-left name="arrow-dropright" *ngIf="!item.toggle"></ion-icon>
<ion-icon item-left name="arrow-dropdown" *ngIf="item.toggle"></ion-icon>
</button>
</ion-col>
<!-- other stuff is the same -->
<div *ngIf="item.toggle">
<!-- contents are the same here -->
</div>
</ion-row>
//your component.ts
export class VentClass {
gDatas: any[];
constructor() {
this.gDatas = [{toggle: false,"ID":"85","Source":"Local","Eqpmnts":[{"ID":"10","CreatedBy":"jmzw"},{"ID":"10","CreatedBy":"jmzw"}]},{toggle: false,"ID":"86","Source":"Local","Eqpmnts":[{toggle: false,"ID":"10","CreatedBy":"jmzw"}]},{toggle: false,"ID":"87","Source":"EC","Eqpmnts":[]}]
}
toggleSection(item: number) {
this.gDatas[item].toggle = !this.gDatas[item].toggle;
}
}
Таким образом, большие различия здесь заключаются в том, что toggleSection
теперь использует индекс массива в пределах gDatas
, чтобы определить, какой элемент должен быть переключен, а затем вместо использования toggelFlagvfe
в шаблоне HTML, который вы используете item.toggle
, чтобы определить включен ли каждый отдельный элемент или нет.