2017-03-29 2 views
1

Das ist mein glut-twiddle, die die gesamte Situation zu erklären:Blinzeln von Laden (isPending) zu aufgelöst. Warum?

https://ember-twiddle.com/758a294c26d4f66b201462c997f79e57

Mein Problem ist die Ladenachricht.

Meine Beiträge sind side geladen und es kann eine sehr sehr lange Zeit für den Download sein.

In der Zwischenzeit muss ich eine Lade-Nachricht anzeigen (in Twiddle ist das grün).

Wenn ich die category Route von categories Route eingeben, brauche ich die grüne Belastung direkt, kein Blinzeln mit rot, wie Sie sehen können.

Warum passiert das?

Antwort

1

Diese Art des Ladens von Daten kann etwas knifflig werden (wie Sie es kennen ;-). Möchten Sie in Ihrer Konfiguration, dass Ihre Kategorie angezeigt wird, wenn die Daten nicht geladen wurden?

Wenn Sie das nicht tun, dann können Sie Ihren UI Laden blockieren, indem sie fordern, dass Ihre Beiträge Datenseite belasteten Ihre Kategorie Routen Modell Haken bekommen:

model(params) { 
    return this.store.findRecord('category', params.category_id, { include: 'posts' }); 

    // see the guides page about this 
    // https://guides.emberjs.com/v2.12.0/models/relationships/#toc_retrieving-related-records 
} 

Gerade jetzt, scheint Ihre Beiträge Datenanforderung zu sein ausgelöst durch Ihre Vorlage Zugriff auf die Posts Daten (weshalb Sie sehen, dass Flash).

Wenn Sie während des Ladens Ihrer Postdaten Kategoriedaten anzeigen möchten (dies ist oft der gewünschte Effekt), ist das Laden Ihrer sekundären Daten in eine Posts-Komponente (die die entsprechende Kategorie-ID verwendet) der sauberste Weg geh damit um.

Ich habe persönlich mit ember-concurrency für diese Art von Aufgabe gefunden, macht es viel einfacher. Dieses Beispiel könnte Ihnen helfen, in die richtige Richtung zu weisen: http://ember-concurrency.com/#/docs/examples/autocomplete

Hilft das?

Verwandte Themen