Ich habe ein grundlegendes Backbone-Modell, sein Attribut urlRoot
ist gesetzt, und das entsprechende Ziel auf der Serverseite gibt eine korrekte JSON-Ausgabe zurück (sowohl JSON-String als auch application/json
header).
Ich rufe einen Abruf wie folgt auf:
%Vor%an dieser Stelle, wenn ich ein
hinzufüge %Vor%Ich kann das Modell sehen und es in Firebug untersuchen. Ich kann das Attributobjekt öffnen und alle vom Server zurückgegebenen Werte sehen.
ABER wenn ich a:
%Vor% Ich bekomme undefined
(der Name erscheint unter den Attributen in der oben erwähnten DOM Inspektion)
macht auch a:
%Vor% gibt ein Objekt zurück, das nur {id: 1}
enthält. Dies ist das Argument, das ich beim Erstellen des Modells übergeben habe.
Wenn ich das Modell so erstelle:
%Vor% dann funktioniert alles gut, die .get()
-Methode gibt zurück, was auch immer ich frage, und athlete.attributes
zeigt alle Werte an.
Was mache ich falsch?
fetch
ist asynchron, was bedeutet, dass die Daten nicht verfügbar sind, wenn Sie nach dem Abruf sofort console.log(athlete.get('name'))
aufrufen.
Verwenden Sie Ereignisse, um benachrichtigt zu werden, wenn die Daten verfügbar sind, z. B.
%Vor%oder fügen Sie Ihrem Abruf einen Rückruf hinzu
%Vor% oder nutzen Sie das Versprechen von fetch
:
Tags und Links javascript backbone.js