angular / angular/components

feat(drag-drop): cdkConnectedTo finds all drop lists with the same ID, instead of only one

Ouverte
#20,069 6 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
area: cdk/drag-drop feature P4
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

#### Feature Description

`CdkDropList` has `id` and `cdkConnectedTo` input properties to allow specifying an id or array of ids for which the drop lists should be connected.

The `id` input property "needs" to be unique, or better put is "assumed" to be unique - meaning when searching through drop lists to connect to by id, only the first match is returned.

Can the "need" for unique ids be removed and change the connected drop list logic to return **all** drop lists with a matching id?

From the user's perspective:

- If I want a drop list to inherently be standalone, provide a unique id.
- If I want a drop list to inherently be connected to others, provide a shared id.

#### Use Case

Connecting drop lists created dynamically, possibly defined in separate template files and with arbitrary DOM relation, **without** the overhead of having to maintain a separate list of all drop lists that should be connected, and making sure this list is properly updated and propagated to each drop list via change detection.

Instead a statically defined (or could be dynamic) id for the `id` and `cdkConnectedTo` inputs will automatically connect all the drop lists without any further coordination from the user.

Similar to what @sroettering mentioned [here](https://github.com/angular/components/pull/13754#issuecomment-436694651), but I don't think a new input property is necessary.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par localiser l’implémentation de CdkDropList et ses tests, puis suivez la manière dont id et cdkConnectedTo résolvent les listes de dépôt connectées. Mettez à jour le comportement afin qu’un id partagé résolve toutes les listes correspondantes, et vérifiez que les ids uniques restent autonomes tandis que les ids partagés connectent toutes les listes correspondantes.

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

Évaluation

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

Recevez les nouvelles issues par e-mail

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