angular / angular/components

bug(material/chip): Mdc Chip Grid empties all options when using Reactive Forms and focusing out

Aperta
#26,358 19 commenti 16 reazioni 0 assegnatari Vedi su GitHub
area: material/chips P4
Lingua principale
TypeScript
Stelle
25k
Fork
6.8k
Merge medio
1g 8h
PR unite (30g)
91

Descrizione

### Is this a regression?

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

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

14.2.6

### Description

Having Reactive forms attached to `mat-chip-grid` which accepts an array of object values, clears them on focus out.

### Reproduction

Steps to reproduce:
1. Create a formgroup with some formControl
2. Bind it to ` `
3. Add some new options (or the same works if the list is already populated) that are **arrays of objects**.
4. Focus out of the component

https://stackblitz.com/edit/angular-6g9jz1?file=src%2Fapp%2Fchips-input-example.ts,src%2Fapp%2Fchips-input-example.html

Upon further investigation, figured that the core problem is that on focus out, object values are transformed to strings hence why we don't see the name property. Nevertheless objects were not transformed in v 14.

![mat-grid-bug](https://user-images.githubusercontent.com/26407402/210384868-edfda991-132a-48dd-9a44-90aeaeebaebc.gif)

_Note:_ In the Docs Chip list works as expected because it is not bound to Reactive forms

### Expected Behavior

All options remain with previously defined object values

### Actual Behavior

All options are transformed to strings thus we have empty text options

### Environment

- Angular: 15.0.4
- CDK/Material: 15.0.3
- Browser(s): Chrome 108.0.5359.124
- Operating System: macOS Ventura 13.1

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con la riproduzione collegata di StackBlitz, in particolare src/app/chips-input-example.ts e src/app/chips-input-example.html, e verifica come mat-chip-grid è associato a Reactive Forms con array di oggetti. Riproduci il comportamento alla perdita del focus, quindi verifica che le opzioni mantengano i propri valori oggetto e il testo visibile successivamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
angular, typescript
Ambito
frontend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.