Bereichsfehler innerhalb von Backbone model.fetch () Callback (Aufruf von setTimeout)

7

Ich habe eine Masteransicht ( Services ) mit einer Sammlung von untergeordneten Ansichten ( Service ). Jede untergeordnete Ansicht muss sich alle 5 Sekunden aktualisieren. Um dies zu tun, hatte ich folgende [Auszug]:

%Vor%

Der setTimeout Aufruf an update() hat natürlich funktioniert, da this korrekt an die fragliche Ansicht gebunden war.

Das Problem tritt auf, wenn ich setTimeout in den Callback für fetch verschiebe, da this jetzt auf den globalen Bereich zeigt:

%Vor%

Wie kann ich eine kontinuierliche (nicht überlappende) Update-Funktion erreichen? Oder - wie kann ich den Geltungsbereich der Ansicht auf this im fetch -Rückruf anwenden?

Aktualisieren

Ich bin gerade über diese alte Frage gegangen, und für zukünftige Referenz folge ich diesem Muster heutzutage, da ich _.bind OTT hier finde:

%Vor%     
isNaN1247 19.09.2011, 08:37
quelle

2 Antworten

21

Eine der Optionen ist die Verwendung von Underscore _.bind function:

%Vor%     
kulesa 19.09.2011, 10:32
quelle
6

Ich weiß, dass dies eine alte Frage ist, aber die Erfolgs- und Fehlerereignisse geben drei Werte zurück: Modell, Antwort und Optionen. Anstatt this.update innerhalb der Erfolgsfunktion aufzurufen, können Sie model.update :

aufrufen %Vor%     
drewloomer 13.12.2012 20:14
quelle

Tags und Links