angular / angular/components

bug(material/chips): MatChipSelectionChange not emitting on certain deselections

Ouverte
#27,909 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
area: material/chips P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

### 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

`selectionChange` output for `MatChipOption` is [stated to be](https://material.angular.io/components/chips/api#MatChipOption):
> Emitted when the chip is selected or **deselected**.

But this is not true for deselection. It appears the event is only emitted for deselection when **the chip in question** is manually selected/toggled by the user. When the `MatChipListbox` is **in single-select mode and a chip is currently selected**, selecting a different chip means the prior chip is deselected --> deselecting should mean emitting the `selectionChange` event, but it is not happening in this scenario.

See the below StackBlitz link.

### Reproduction

StackBlitz link: https://stackblitz.com/edit/firqg1
Steps to reproduce:

(First chip is initially selected)
1. Click on the Second chip.
2. First chip becomes deselected, but no `selectionChange` output event was emitted (in this case, the `MatChipSelectionChange` object should be logged to the console).

### Expected Behavior

`selectionChange` output for the First chip should have emitted.

### Actual Behavior

`selectionChange` output for the First chip does not emit.

### Environment

- Angular: 16
- CDK/Material: 16.2.7 (latest)
- Browser(s): Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): Windows

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Ouvrez la reproduction StackBlitz liée et examinez le comportement de sélection de MatChipOption et MatChipListbox décrit dans l’issue. Vérifiez le chemin de désélection en single-select lors de la sélection de la deuxième puce ; c’est terminé lorsque la première puce émet son événement MatChipSelectionChange lorsqu’elle est désélectionnée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
frontend
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.