Во-первых, я очень новичок в мире Angular.Пытаясь достичь цели.Я действительно ценю все вклады.Приходя к вопросу.
Я создаю несколько панелей расширения, используя "ngFor".Я хочу выделить или изменить таблицу стилей только для панели, выбранной пользователем.Остальные панели должны иметь таблицу стилей по умолчанию.когда пользователь щелкает по второй панели, он должен выделить вторую панель и восстановить для первой панели значение по умолчанию.
«Цикл ngFor» - это один компонент, который взаимодействует с «панелью расширения мата» в другом компоненте.Поэтому я испытываю трудности с сбросом предыдущей подсвеченной панели, когда пользователь нажимает на другую панель.
Я использовал «стиль CSS - фокус», это сработало.Но проблема в том, что даже если я щелкну где-нибудь на экране, стиль CSS будет установлен по умолчанию.Я хочу только, когда пользователь выбирает другую панель, тогда она должна сбрасываться.
Я также попытался найти предыдущий элемент и текущий элемент и сравнить их на основе этой попытки изменить стиль.Это работает, но я не могу выполнить сброс, если пользователь выбрал вторую панель.Обе подсвечиваются.
Это первый компонент HTML:
</div>
<app-cpd-pres-deck-view *ngFor="let pres of allPres; let idx = index;" [pres]="pres" [isExpanded]= "idx==0" ></app-cpd-pres-deck-view>
</div>
Это компонент панели расширения мат HTML:
<mat-expansion-panel [expanded]="isExpanded" hideToggle="true" style="margin: 5px;" class="prestest" [(expanded)]="expanded">
<!-- <mat-expansion-panel [expanded]="false" (click)="clickIcon()" hideToggle="true" style="margin: 5px;" class="prestest" > -->
<mat-expansion-panel-header (click)="openPresDeck()" [collapsedHeight]="'60px'" [expandedHeight]="'60px'">
<mat-panel-title>
<mat-icon class="arrow">{{expanded ? 'arrow_drop_down' : 'arrow_right' }}</mat-icon>
<div class="col-md-9" >
<label class="name" id="lblName" >{{pres.profileName}}</label>
<!-- <label class="name" id="lblName" >{{pres.profileName}}</label> -->
</div>...
some more content
</mat-panel-description>
</mat-expansion-panel>
Когда страница загружается, она загружаетсявсе панели с таблицей стилей по умолчанию.Теперь при использовании выберите любую панель, она должна выделить эту панель и выполнить сброс, если пользователь выберет другую панель.