Data and layout changes are lost while the plot is initializing
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 76/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- angular, typescript
- Bereich
- frontend
Rechercherichtung
Beginne mit PlotlyComponent.ngDoCheck und dem Initialisierungspfad, der Plotly.newPlot aufruft; das Issue beschreibt den verbrauchten Diff und das ausbleibende Update, während plotlyInstance undefined ist. Verfolge, wie die Initialisierung abgeschlossen wird und wie Updates angewendet werden, und ergänze Tests dafür, dass sich Daten oder Layout ändern, bevor newPlot abgeschlossen ist. Ziel ist, dass das Diagramm nach der Initialisierung die neuesten Eingaben anzeigt, ohne dass eine weitere Änderung nötig ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
PlotlyComponent drops [data] and [layout] changes that arrive before Plotly.newPlot resolves. The chart keeps showing the initial input until another change happens later.
The window is easy to hit with PlotlyViaCDNModule or PlotlyViaWindowModule, where newPlot waits for plotly.js to load, and with traces whose newPlot is asynchronous. A typical case is a chart that starts with [data]="[]" and receives data from an HTTP request that completes before plotly.js finishes loading.
Cause
ngDoCheck detects the change, which consumes the differ's diff, but only calls updatePlot() when plotlyInstance is set. During initialization plotlyInstance is still undefined, so the update is skipped. newPlot was already called with the old input, so the newer input is never drawn.
Steps to reproduce
- Load plotly.js through
PlotlyViaCDNModule. - Render
<plotly-plot [data]="data"></plotly-plot>withdata = []. - Set
datato a new array before the CDN script finishes loading (for example, from a fast HTTP response or asetTimeout(..., 0)).
Expected: the chart shows the new data.
Actual: the chart stays empty until data or layout changes again.
Affected versions
v20, v21, and master (same code in ngDoCheck).
- Vorherrschende Sprache
- TypeScript
- Sterne
- 242
- Forks
- 81
- Ø Merge
- 23 Std. 52 Min.
- Gemergte PRs (30 T.)
- 5
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus plotly/angular-plotly.js
-
Feature request: please add migration guideEvtl. vergeben @andrefarzat hat das vor 21 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
plotly/angular-plotly.js#285 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
event handlers are not typedEvtl. vergeben @andrefarzat hat das vor 21 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
plotly/angular-plotly.js#283 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Angular 20 standalone applicationEvtl. vergeben @andrefarzat hat das vor 21 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
plotly/angular-plotly.js#281 · 8 Kommentare · 2 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
plotly/angular-plotly.js#278 · 2 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
plotly/angular-plotly.js#276 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in plotly/angular-plotly.js
Ähnliche Issues
-
needs investigation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 60/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
area:visualizer tech-debt
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 66/100
jmbarzee/temporal-architect#292 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
riverqueue/river#1576 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
colbymchenry/codegraph#3228 ·
Maintainer antworten meist innerhalb von 1 Tag