Was ist ein Modell
Der Autor von Backbone definiert das Modell wie folgt:
Das Modell ist der Kern jeder Webanwendung, es enthält interaktive Daten und den größten Teil der Logik. Zum Beispiel: Konvertierung, Überprüfung, Attribute und Zugriffsberechtigungen usw.
Lassen Sie uns zuerst ein Modell erstellen:
Person = backbone.model.extend ({initialize: function () {alert ("Willkommen bei Backbone!");}}); Var Person = new Person;Im obigen Code definieren wir ein Modell namens Person und nach der Instanziierung bekommen wir eine Person. Jedes Mal, wenn Sie ein Modell instanziieren, wird die initialize () -Methode automatisch ausgelöst (dieses Prinzip gilt auch für die Sammlung, Ansicht). Natürlich ist die Initialize () -Methode bei der Definition eines Modells nicht obligatorisch, aber wenn Sie das Rückgrat verwenden, werden Sie es unverzichtbar finden.
Modelleigenschaften festlegen
Jetzt möchten wir einige Parameter übergeben, wenn wir eine Modellinstanz erstellen, um die Eigenschaften des Modells festzulegen:
Person = backbone.model.extend ({initialize: function () {alert ("Willkommen bei Backbone!");}}); // set var Person = New Person ({Name: "Stephenlee", Alter: 22}). var person = new Person (); Person.set ({Name: "Stephenlee", Alter: 22});Modelleigenschaften erhalten
Mit der Modellmethode Get () können wir die Eigenschaften erhalten:
Person = backbone.model.extend ({initialize: function () {alert ("Willkommen bei Backbone!");}}); Var Person = new Person ({Name: "Stephenlee", Alter: 22}); var age = person.get ("Alter"); // 22var name = person.get ("name"); // "Stephenlee"Setzen Sie Modell Standardeigenschaften
Manchmal möchten Sie, dass das Modell einige Standardeigenschaftswerte bei der Instanziierung einbezieht, die durch Definieren der Standardeigenschaft des Modells erreicht werden können:
Person = backbone.model.extend ({Standards: {name: "lebronjames", Alter: 30,}, initialize: function () {alert ("Willkommen zum Backbone!");}}); Var Person = New Person ({Name: "StepHenlee"}); // Da der Alterswert während der Instanziierung nicht angegeben ist, beträgt der Standardwert 30Var Name = Person.get ("Name"); // Wenn die Instanziierung den Namenswert festgelegt hat, handelt es sich um "Stephenlee".Verwenden Sie Modelleigenschaften
Sie können Methoden im Modell anpassen, um Eigenschaften innerhalb des Modells zu verwenden. (Alle benutzerdefinierten Methoden standardmäßig öffentlich)
Person = backbone.model.extend ({Standards: {Name: "LeBronjames", Alter: 30, Hobby: "Basketball"}, initialize: function () {alert ("Willkommen in Backbone!");}, Like: Funktion (Hobbyname) {this.set ({{Hobby: Hobby: Hobby: Hobby: Hobby:});}); "Stephenlee", Alter: 22}); Person.like ("Codierung"); // Setzen Sie Stephenlees Hobby auf Codingvar Hobby = Person.get ("Hobby"); // "Codierung"Hören Sie sich die Änderung der Modelleigenschaften an
Nach dem Rückgrat -Mechanismus können wir auf jedes Attribut des Modells zuhören. Als nächstes versuchen wir, das Attribut eines Modells in die initialize () -Methode zu binden, um darauf zu hören, und nehmen Sie den Attributnamen als Beispiel:
Person = backbone.model.extend ({Standards: {Name: "LeBronjames", Alter: 30,}, initialize: function () {alert ("Willkommen im Backbone!"); }}); var person = new Person (); var age = person.set ({name: "kobebryant"});Über den obigen Code wissen wir, wie man auf eine bestimmte Eigenschaft des Modells zuhört. Unter der Annahme, dass wir alle Eigenschaften des Modells zuhören müssen, verwenden Sie "this.on (" Change ", Funktion (Modell) {}); .
Dateninteraktion zwischen Server und Modell
Wie bereits erwähnt, enthält das Modell interaktive Daten, sodass eine seiner Funktionen darin besteht, Daten aus dem Server zu tragen und mit dem Server zu interagieren. Nehmen wir nun an, dass ein Tabellenbenutzer von MySQL auf dem Server vorhanden ist, der drei Fields -ID, Name und E -Mail enthält. Die Serverseite verwendet den REST-Stil, um mit dem Front-End zu kommunizieren, und verwendet die Interaktion mit URL: /Benutzer. Unser Modell ist definiert als:
var UserModel = backbone.model.extend ({urlroot: '/user', Standards: {Name: '', E -Mail: ''}});Erstellen Sie ein Modell
Jedes Modell in Backbone verfügt über eine Eigenschaft-ID, die den serverseitigen Daten einzeln entspricht. Wenn wir dem serverseitigen MySQL-Tabellenbenutzer einen neuen Datensatz hinzufügen möchten, müssen wir nur ein Modell instanziieren und die Save () -Methode aufrufen. Zu diesem Zeitpunkt ist die Attribut -ID der Modellinstanz leer, was bedeutet, dass das Modell neu erstellt wird, sodass Backbone eine Postanforderung an die angegebene URL sendet.
var usermodel = backbone.model.extend ({urlroot: '/user', Standards: {Name: '', E -Mail: ''}); var user = new UsModel (); // Beachten Sie, dass wir die ID -Attribute hier nicht definieren, weil var userDetails = {name: 'name' name 'name:' name '}:'}: '}:', '}:', '}:', '}:', '}:', ','}: ','}: ','}: ',', ',', ',', ',', E -Mail: ',', ','}: ',', ',', ',', E -Mail: 'defines defines define define Das Modell hat kein ID -Attribut. Verwenden Sie zu diesem Zeitpunkt die Methode Save (). Backbone sendet eine Postanforderung an die Serverseite. Nach dem Empfangen der Daten speichert die Serverseite sie und gibt die Informationen mit der ID an modelUser.save (userDetails, {Erfolg: Funktion (Benutzer) {alert (user.tojson ()) zurück;}}).Zu diesem Zeitpunkt gibt es einen zusätzlichen Datensatz in der Benutzertabelle von MySQL auf dem Server mit Namen Stephenlee und per E -Mail mit [email protected].
Holen Sie sich ein Modell
Wir haben gerade ein Modell erstellt und in der serverseitigen Datenbank gespeichert. Unter der Annahme, dass beim Erstellen des Modells der von der Server-Seite zurückgegebene ID-Attributwert 1 beträgt. Zu diesem Zeitpunkt können wir die gespeicherten Daten über den Wert der ID abrufen. Wenn wir eine Modellinstanz mit dem ID -Attributwert initialisieren, sendet das Backbone über die Operation Fetch () eine GET -Anforderung an die angegebene URL.
var user = new UsModel ({id: 1}); // Geben Sie den Wert der ID während der Initialisierung an // Verwenden Sie die Methode Fetch (), um Daten von Benutzer/1 anzufordern.Aktualisieren Sie ein Modell
Wenn wir den gespeicherten Benutzerdatensatz ändern müssen, den bekannten ID -Wert verwenden und die Methode Save () verwenden müssen. Da die ID derzeit nicht leer ist, sendet Backbone eine Put -Anforderung an die angegebene URL.
var user = new UsModel ({ID: 1, Name: 'Stephenlee', E -Mail: '[email protected]'}); // Geben Sie den ID -Wert an, wenn der ID -Wert angegeben ist, da der ID -Wert angegeben ist, verwenden Sie die SARE () -Methode zu diesem Zeitpunkt. Backbone sendet eine Put -Anfrage an user/1 und ändert die E -Mail des Datensatzes mit ID 1 in der Datenbank user.save ({E -Mail: '[email protected]'}, {Erfolg: Funktion (Modell) {alert (user.tojson ();}});Ein Modell löschen
Wenn wir in der Datenbank Datensätze löschen müssen, verwenden Sie die bekannte ID -Wert und verwenden Sie die Methode Destroy (). Zu diesem Zeitpunkt sendet Backbone eine Löschvoropie an die angegebene URL.
var user = new UsModel ({ID: 1, Name: 'Stephenlee', E -Mail: '[email protected]'}); // Geben Sie den ID -Wert an, wenn Sie instanziieren // Angabe des ID -Werts verwenden, verwenden Sie die Districle () -Methode. Nach Empfang der Anforderung werden die Daten mit ID 1 im Datenbankbenutzer gelöscht.Was ist Sammlung
Kurz gesagt, die Sammlung in Backbone ist eine geordnete Sammlung von Modellen, beispielsweise kann sie in den folgenden Situationen verwendet werden:
Modell: Student, Sammlung: KlassenstudentsModel: Todo Element, Sammlung: Todo ListModel: Animal, Sammlung: Zoo
Die Sammlung verwendet im Allgemeinen nur den gleichen Modelltyp, aber das Modell kann zu verschiedenen Sammlungsarten angehören, wie z. B.:
Modell: Schüler, Sammlung: Fitnessstudio Klassenmodel: Schüler, Sammlung: Kunst Klassenmodel: Student, Sammlung: Englischunterricht
Erstellen Sie eine Sammlung
// Model Songvar Song = Backbone.model.extend ({defaults: {name: "nicht spezifiziert", Künstler: "Nicht spezifiziert"}, initialize: function () {console.log ("music is the Antwort");}}); // Define Collection VALSICED -Album = Backbone.Collection.Collection ({EXTRICTEL "({EXTRICTEL. = neues Lied ({Name: "Wie bizarr", Künstler: "Omc"}); var Song1 = neuer Lied ({Name: "Wie bizarr", Künstler: "Omc"}); myalbum = neues Album ([Song1, Song2, Song3]); console.log (Myalbum.models); // Die Ausgabe ist [Song1, Song2, Song3]