angular / angular/components

[FR] afterClosed for MatMenuTrigger and MatMenu

Offen
#11,929 4 Kommentare 4 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area: material/menu feature P4
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.8k
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
91

Beschreibung

#### Bug, feature request, or proposal:
feature request

#### What is the expected behavior?
I want to be able to detect when a menu is completely closed (after the animation is done)

#### What is the current behavior?
there is a `menuClosed` event that is called when menu is about to be clsoed

#### What is the use-case or motivation for changing an existing behavior?
After menu item selected, I want to update a service the affects the displayed menu panel. Current menuClosed is too early, and it will cause the panel to reflect the change during the close animation.

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
angular 6.0.6, material 6.3.0

#### Is there anything else we should know?
workarounds:
1. ```js
onMenuClosed() {setTimeout(() => { /* doing stuff */ }, 500);}
1. ```js
@ViewChild(MatMenu) myMenu: MatMenu;

// ...
onMenuClosed() {
this.myMenu._animationDone
.pipe(filter(event => event.toState === 'void'), take(1))
.subscribe(() => {
/* doing stuff */
});
}

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den Ereignislebenszyklus von MatMenuTrigger und MatMenu zu lesen, insbesondere das vorhandene menuClosed-Ereignis und den referenzierten _animationDone-Stream. Bestätige, wann die Schließanimation abgeschlossen ist, und definiere das öffentliche afterClosed-Verhalten für beide Komponenten. Fertig ist die Aufgabe, wenn Verbraucher reagieren können, nachdem das Menü vollständig geschlossen ist, ohne auf ein Timeout oder eine private API angewiesen zu sein.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
frontend
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.