Я пытаюсь переопределить стандартное свертывание и расширить функциональность панели расширения угловых материалов.
https://material.angular.io/components/expansion/overview
По умолчанию панель расширения переключает разворачивание / свертывание, если мышьщелкнул ВСЕГДА в заголовке панели.
Я бы хотел отключить эту функцию, чтобы я мог добавить настраиваемые кнопки "панели инструментов" в заголовок.
Я попытался добавить обработчик события click в заголовок панели и вызвать: event.stopPropogation();
, чтобы попытаться предотвратить расширение и свертывание, но безрезультатно.
Я также попытался добавить кнопку с обработчиком события щелчка в заголовок панели, чтобы посмотреть, смогу ли я обойти развертывание и свертывание.К сожалению, это тоже не сработало.
https://stackblitz.com/edit/angular-ritpbb
HTML
<mat-expansion-panel #matExpansionPanel
[class.active]="selected"
(click)="componentSelected($event)"
[expanded]="expanded">
<mat-expansion-panel-header (click)="togglePanel($event)">
Collapse Test <button mat-button>select panel</button>
</mat-expansion-panel-header>
CONTENT FOR EXPANSION PANEL
<mat-action-row>
<button mat-button (click)="buttonClick($event)">remove</button>
</mat-action-row>
</mat-expansion-panel>
.TS
import { Component } from '@angular/core';
import { MatExpansionPanel } from '@angular/material';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
expanded = true;
selected = false;
componentSelected($event) {
this.selected = !this.selected;
event.stopPropagation();
}
buttonClick($event) {
this.selected = !this.selected;
console.log('test');
event.stopPropagation();
}
togglePanel($event) {
this.expanded = !this.expanded;
//event.stopPropagation();
}
}