feat(autocomplete): allow configuring requireSelection blur behavior without resetting value to null
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 55/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- angular, typescript
- Bereich
- frontend
Rechercherichtung
Beginne damit, das Angular-autocomplete-Verhalten von requireSelection bei blur nachzuverfolgen und zu untersuchen, wie valueChanges ausgegeben wird, wenn das panel geschlossen wird. Lies die verwandten Issues #27767 und #28590 hinsichtlich bestehender Einschränkungen. Als abgeschlossen gilt die Arbeit, wenn Anwendungen konfigurieren können, ob blur die vorherige Auswahl beibehält oder null ausgibt, während ein explizites Löschen unterscheidbar bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Feature Description
Please add a configurable option such as preserving the previous selection on blur, so that requireSelection does not have to emit null unless the application explicitly wants that behavior.
Related issues:
- #27767:
requireSelectionclears input on blur - #28590:
[requireSelection]="true"breaksvalueChanges
Use Case
In our case, we manually restore the previous selected value when Angular resets the control to null.
That workaround causes multiple valueChanges emissions for a single user interaction: first null, then the previously selected value after we restore it. This is noisy, annoying to handle, and not reliably distinguishable from a real clear action triggered by the user.
We want to detect an actual clear action separately from the case where the user only focuses the input, opens the autocomplete panel, and then blurs without selecting a new option. A configurable behavior here would prevent unnecessary state changes and extra reactive form events.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 25k
- Forks
- 6.8k
- Ø Merge
- 1 T. 1 Std.
- Gemergte PRs (30 T.)
- 84
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus angular/components
-
area: material/tree docs gemini-triaged needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
angular/components#33832 ·
-
area: material/datepicker gemini-triaged P4
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
angular/components#33763 · 2 Kommentare · 3 Reaktionen ·
-
area: material/table gemini-triaged P4
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
angular/components#33709 · 1 Kommentar ·
-
area: material/table docs gemini-triaged P4
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
angular/components#33455 ·
-
area: material/core gemini-triaged P3
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
angular/components#33059 · 2 Kommentare ·
Alle Issues in angular/components
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
-
security
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
IBM/node-sdk-core#373 ·
-
e2e-failure ready-to-code
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
-
chore
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100