angular / angular/components

bug(autocomplete): DisplayWith retriggering + Programmatical value selection

Offen
#28,161 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
area: material/autocomplete P3
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.8k
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
91

Beschreibung

### Is this a regression?

- [ ] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

_No response_

### Description

1. It's impossible to retrigger displayWith method (only when resetting form value).
2. Initial data is not displayed on dropdown with checkmark symbol, when property is binded. After selection all is working
2.1 When changing value programatically, checkmark is displayed on wrong selection.

### Reproduction

StackBlitz link: https://stackblitz.com/edit/zkwk2u
Steps to reproduce:
1. Change language
2. Value is not translated + not possible trigger displayWith. I tried different things, even updateValueAndValidity on formControl, which should really execute ValueChanges. Only when changing property value with setValue, it triggers displayWith method. With this approach I saw second problem, with programmatically changing control value.

1. Open link, selected value is displayed correctly with displayWith
2. Open dropdown no selection is displayed.
3. Select new value (first value) from dropdown (value is displayed correctly with check mark)
4. Click button (it changes value to 3, 3rd selection)
5. Value change is triggered and input shows correct data.
6. Open dropdown, it still shows wrong selection

### Expected Behavior

1. It's possible to trigger programmatically displayWith
2. Programmatically selected value + initial value is displayed correctly

### Actual Behavior

1. When already displayed value with displayWith, then this is not possible to change
2. Selection is not shown or shown wrongly

### Environment

- Angular: 17.0.0
- CDK/Material: 17.0.1
- Browser(s):
- Operating System (e.g. Windows, macOS, Ubuntu):

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der verknüpften StackBlitz-Reproduktion und untersuche das Verhalten von Angular Material autocomplete im Zusammenhang mit displayWith, initialen Werten und programmgesteuerten setValue-Änderungen. Erledigt ist die Aufgabe, wenn displayWith programmgesteuert erneut ausgelöst werden kann und das Häkchen im Dropdown sowohl die anfänglich als auch die programmgesteuert ausgewählten Werte korrekt verfolgt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
frontend
Issue-Typ
Bug
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.