Code zum Überschreiben von backbone.sync

7

Ich möchte backbone.sync überschreiben, ich habe das schon gefragt, aber das Problem ist, dass ich es nicht ganz verstehe. Ich muss wissen, wohin ich die Codes setzen soll, wenn ich die Synchronisierungsfunktion außer Kraft setzen möchte.

Wenn ich es so auf das Modell setze

%Vor%

Wie soll ich das nennen? wenn ich die Speichermethode verwenden würde. Auch ich muss die methodMap des Erstellens von POST zu PUT ändern. vorübergehend habe ich auf diese 'create': 'PUT', zurückgegriffen, die tatsächlich die Datei backbone.js bearbeitet (iknow ist nicht gut). Bevor ich es vergessen habe, muss ich auch dieses hinzufügen

%Vor%

Als Parameter vor dem Senden, da mein Server eine Authentifizierung hat. Wieder wo soll ich es machen? Wohin soll ich gehen und die Codes setzen? in meinem Modell? in meiner Sammlung? oder in meinen Ansichten? Irgendeine Hilfe? Ich danke Ihnen.

aktualisieren

Kann ich auch die Synchronisierung meiner Sammlung überschreiben? Ich meine, kann ich so etwas haben?

%Vor%     
jongbanaag 10.04.2012, 05:32
quelle

1 Antwort

20

Die Strategie hinter dem Backbone-Framework besteht darin, es für die Bearbeitung einfach und für jeden Bedarf flexibel zu gestalten. Wenn Sie also den Quellcode nachschlagen, werden Sie feststellen, dass jede Methode, die Backbone.sync aufruft, tatsächlich zuerst "this.sync" aufruft.

Aus dem Backbone-Handbuch können Sie lesen:

  

Die Synchronisierungsfunktion kann global als Backbone.sync oder bei a überschrieben werden   feinkörniger, indem Sie eine Sync-Funktion zu einem Backbone hinzufügen   Sammlung oder zu einem individuellen Modell.

Sie haben also zwei Möglichkeiten

Option 1 - Ersetzen der globalen Backbone.sync-Funktion

Wenn Sie das globale Backbone.sync überschreiben, sollten Sie Ihren Code in Ihre globale Anwendungsdatei einfügen (eigentlich wo Sie wollen, aber er muss beim ersten Laden von JavaScript ausgewertet werden), um wie erwartet zu funktionieren

%Vor%

Dadurch wird Backbone.sync überschrieben und auf Ihrer Konsole wird angezeigt, was bei jedem Aufruf von collection.fetch, save, delete usw. aufgerufen wird.

Hier haben Sie keine Standard-Methodmap, in der Tat haben Sie nichts anderes als die Argumente:

  • Methode - das ist ein String - 'lesen', 'erstellen', 'löschen', 'aktualisieren'
  • collection - das ist Ihre Collection-Instanz, die die Methode
  • aufruft
  • options - was einige Erfolge hat, Fehlerfunktionen, die Sie vielleicht nicht beibehalten können.

Debuggen Sie dies in Ihrem Browser, während Sie den Backbone-Quellcode lesen, es ist sehr einfach zu verstehen.

Option Zwei - Hinzufügen zu Ihrer Modell- / Sammlungssynchronisierungsmethode

Dies wird verwendet, wenn Sie die Standardmethode Backbone.sync für jedes andere Modell / jede andere Sammlung verwenden möchten, mit Ausnahme des von Ihnen definierten Typs:

%Vor%

Wenn Sie also Partners.fetch () oder Users.fetch () aufrufen, werden sie Backbone.sync nicht mehr aufrufen, sondern Ihre Log.fetch () -Methode wird dies tun.

    
drinchev 10.04.2012, 11:47
quelle