webentwicklung-frage-antwort-db.com.de

Backbone.js - id vs idAttribute vs cid

Ich habe Backbone.js seit ein paar Wochen studiert und fühle mich wohl mit Ansichten, Modellen, Routern und Sammlungen. 

Ich habe immer noch große Lücken:

  1. Was ist die Verbindung zwischen id, cid und idAttribute? Wie beeinflussen sie sich?

  2. Wann erhält ein neues Modell genau seine ID? Ist der Server für die Zuordnung verantwortlich? Muss ich es zur defaults des Modells hinzufügen (möglicherweise als Funktion)? Vielleicht sollte die addNewModel-Funktion das tun?

47
Daniel

Was ist die Verbindung zwischen id, cid und idAttribute? Wie beeinflussen sie sich?

Die cid und id sollten eindeutige IDs für das Modell sein und können zum Abrufen von einem Modell aus einer Sammlung verwendet werden. 

Der Unterschied zwischen den beiden besteht darin, dass die Variable cid von der Clientseite von backbone.js zugewiesen wird. Dies ist nützlich, wenn Sie keine tatsächliche ID haben. Entweder weil das Modell noch nicht auf dem Server gespeichert wurde oder Sie möglicherweise nicht einmal die Nummer haben Speichern Sie es in einer Datenbank (vielleicht verwenden Sie localStorage ). Das id-Attribut sollte die ID des Modells sein, das von Ihrem Server stammt (dies ist die ID in Ihrer Datenbank). idAttribute teilt dem Backbone mit, welches "Feld" von Ihrem Server zum Aktualisieren des id-Attributs verwendet werden soll. Standardmäßig ist dies auf "id" gesetzt, aber wie in der Dokumentation angegeben wenn Ihr Server etwas anderes verwendet, können Sie es einstellen (das gegebene Beispiel setzt es auf "_id".

Wann erhält ein neues Modell genau seine ID? Ist der Server für die Zuordnung verantwortlich? Muss ich es zur defaults des Modells hinzufügen (möglicherweise als Funktion)? Vielleicht sollte die addNewModel-Funktion das tun? 

Sie sollten die neuen IDs erhalten, wenn sie auf dem Server gespeichert werden und Sie sollten sie nicht manuell festlegen (basierend auf der Variablen idattribute), es sei denn, Sie benötigen mehr Kontrolle über den Prozess.

58
Jack

id - id, die beim Erstellen des Modells möglicherweise manuell festgelegt wird oder gefüllt wird, wenn das Modell auf dem Server gespeichert wurde (siehe "idAttribute" unten, um die Verbindung anzuzeigen). Dies ist die ID, die an den Server gesendet wird, wenn das Modell vom Server geladen oder aktualisiert wird, z. B. für eine Modellperson. Dieser Aufruf erfolgt, wenn die ID 123 ist, "/ person/123".

cid - eindeutige id setzt mein Backbone-Modell für den internen Gebrauch

idAttribute - Dies entscheidet, welche Eigenschaft als eindeutige ID fungiert (Standardeinstellung ist "id"), wenn das Modell auf dem Server gespeichert wurde. Beispielsweise kann der eindeutige Schlüssel eines Modells auf dem Server durch "personId" definiert werden, also wenn fetch aufgerufen wird Das Modell ordnet die Serverantwort von "personId" der id im Backbone-Modell zu.

7
3coins

id ist die Servermodell-ID, cid ist die Client-ID.

  • servermodell: wie Rails Model 
  • kundenmodell: Backbone-Modell
1
Ryan Lv

Die id-Eigenschaft eines Modells wird automatisch basierend auf der id-Einstellung im Attribut-Hash des Modells zugewiesen. Idealerweise ist dies die ID, die Sie von der Rest-API für die Ressource erhalten, die Sie abfragen. Auf der anderen Seite ist cid eine ID, die vorübergehend jedem Modell zugewiesen wird, und ist nützlich, bis eine tatsächliche ID für das Objekt ermittelt wird. Beispielsweise kann ein Modell, das auf eine noch nicht persistente Sammlung gepusht wird, mit cid adressiert werden, bis es in der Datenbank gespeichert wird und eine tatsächliche ID für es generiert wird.

0
Dhaval Rajpara