angular / angular/components

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

Offen
#20,069 6 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
area: cdk/drag-drop feature P4
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.8k
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
91

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die Implementierung von CdkDropList und ihre Tests zu finden, und verfolge dann, wie id und cdkConnectedTo verbundene Drop-Listen auflösen. Aktualisiere das Verhalten so, dass eine gemeinsam verwendete id alle übereinstimmenden Listen auflöst, und überprüfe, dass eindeutige ids eigenständig bleiben, während gemeinsam verwendete ids jede übereinstimmende Liste verbinden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
angular, typescript
Bereich
frontend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 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.