Die Sammlung von Backbone.js ist nur ein einfach bestelltes Set -Modell. Durch die Anpassung an Modelle und Sammlungen können wir vermeiden, dass die Datenverarbeitungslogik in unserer Sichtschicht platziert wird. Darüber hinaus bieten Modelle und Sammlungen bequeme Möglichkeiten, mit dem Backend zu arbeiten, und wenn sich Daten ändern, können Backbone.js -Ansichten automatisch markiert werden. Auf diese Weise kann es in den folgenden Fällen verwendet werden:
Die Codekopie lautet wie folgt:
Modell: Tier, Sammlung: Zoo
Normalerweise ist Ihr Set nur für ein Modell geeignet, das Modell selbst ist jedoch nicht auf den Typ des Satzes beschränkt.
Die Codekopie lautet wie folgt:
Modell: Person, Sammlung: Büro
Modell: Person, Sammlung: Home
Hier sind Beispiele für gemeinsame Modelle/Sätze:
Die Codekopie lautet wie folgt:
var music = backbone.model.extend ({{
initialisieren: function () {
console.log ("Willkommen in der Musikwelt");
}
});
var Album = backbone.collection.extend ({{
Modell: Musik
});
Der obige Code sagt uns, wie man eine Sammlung erstellt. Aber es sagt uns nicht den Prozess der Manipulation des Satzes mit Daten. Lassen Sie uns diesen Prozess also untersuchen:
Die Codekopie lautet wie folgt:
var music = backbone.model.extend ({{
Standardeinstellungen: {
Name: "Nicht angegeben",
Künstler: "Nicht angegeben"
},
initialisieren: function () {
console.log ("Willkommen in der Musikwelt"); }
});
var Album = backbone.collection.extend ({{
Modell: Musik
});
var music1 = new Music ({id: 1, Name: "Wie bizarr", Künstler: "Omc"});
var music 2 = new music ({id: 2, name: "Was tut am meisten weh", Künstler: "Rascal Flatts"});
var myalbum = neues Album ([Musik 1, Musik 2]);
console.log (myalbum.models);
Schauen wir uns die Beziehung zwischen der Kollektion Backbone.js und anderen Komponenten an:
1. Fügen Sie der Sammlung ein Modell hinzu
Wie wir wissen, ist ein Set eine Sammlung von Modellen. Daher können wir Modelle zur Sammlung hinzufügen. Um einer Sammlung ein Modell hinzuzufügen, können wir die Methode hinzufügen. Wir können das Modell auch zum Beginn der Sammlung hinzufügen - mithilfe der Unschuhmethode.
Die Codekopie lautet wie folgt:
var music3 = new music ({id: 3, name: "yes i to", künstler: "rascal flatts"});
Music.Add (Music3);
console.log ('neuer Lied hinzugefügt');
console.log (json.stringify (musik));
2. Entfernen Sie das Modell aus dem Satz
Oft müssen wir einige bestimmte Daten aus der Sammlung entfernen. Um das Modell aus der Sammlung zu entfernen, müssen wir die ID des Modells bereitstellen. Wenn wir die ursprüngliche Sammlung durch einen vollständigen neuen Datensatz ersetzen möchten, können wir die Reset -Methode verwenden.
Die Codekopie lautet wie folgt:
Musik.Remove (1);
console.log ('Wie bizarr entfernt ...');
console.log (json.stringify (musik));
3.. Holen Sie sich und setzen Sie
Wenn wir einen Wert aus einer Sammlung an anderer Stelle im Code erhalten müssen, können wir die GET -Methode direkt verwenden. Zu diesem Zeitpunkt übergeben wir den ID -Wert mit der Suche an das Modell.
Die Codekopie lautet wie folgt:
console.log (json.stringify (music.get (2)));
Es gibt eine interessante Implementierung der festgelegten Methode des Satzes. Die SET -Methode führt "intelligente" Updates der Sammlung durch, indem die Modellliste bestanden wird. Wenn sich das Modell in der Liste nicht in der Sammlung befindet, wird es der Sammlung hinzugefügt. Wenn sich das Modell bereits in der Sammlung befindet, werden seine Eigenschaften zusammengeführt. Wenn die Sammlung ein Modell enthält, das nicht zur Liste gehört, wird das Modell entfernt.
Die Codekopie lautet wie folgt:
var music = backbone.model.extend ({{
// Dieses Attribut sollte standardmäßig festgelegt werden
Standardeinstellungen: {
Name: ''
},
// Setzen Sie das ID -Attribut so, dass die Sammlung
idattribute: 'id'
});
var Song = backbone.collection.extend ({{
Modell: Musik
});
var models = [{
Name: 'Omc',
ID: 1
}, {
Name: 'Flatts',
ID: 2
}];
var collection = new Song (Models);
Collection.bind ('Add', Funktion (Modell) {
alarm ('addb')
});
Collection.bind ('remove', function () {
alarm ('add')
});
models = [{
Name: 'Omc',
ID: 1
}, {
Name: 'Flatts',
ID: 2
}, {
Name: 'Jackson',
ID: 3
}];
Collection.Add (Modelle);
});
Wie wir oben gesehen haben, hatten wir bereits 2 Modelle im Voraus, und als wir das 3. Modell hinzufügten, blieb das frühere Modell gleich.
Iv. Konstruktor und Initialisierung
Wenn wir eine Sammlung erstellen, können wir das initialisierte Array des Modells übergeben. Der Vergleich des Satzes kann als Option hinzugefügt werden. Wenn die Option "Passing" falsch ist, wird die Sortierung verhindert. Wenn wir eine Initialisierungsfunktion definieren, wird diese Funktion aufgerufen, wenn die Sammlung erstellt wird. Die folgenden Optionen werden, falls zur Verfügung gestellt, direkt zum Set: Modell und Vergleicher hinzugefügt.
Die Codekopie lautet wie folgt:
var tabs = new tabet ([Tab1, tab2, tab3]);
var spaces = new Backbone.collection ([], {
Modell: Raum
});
5. Tojson
Die TOJSO -Methode gibt ein Array in der Sammlung zurück, die jedes Modell -Hash -Attribut enthält. Diese Methode wird normalerweise verwendet, um den gesamten Satz zu serialisieren und bestehen.
Die Codekopie lautet wie folgt:
var Song = neues Backbone.Collection ([[
{Name: "Flatts"},
{Name: "omc"},
{Name: "Jackson"}
]);
Alert (json.Stringify (Lied));
6. Vergleicher
Standardmäßig haben Sammlungen keine Komparatoren. Wenn wir einen Komparator definieren, kann er verwendet werden, um das Set in irgendeiner Art zu halten. Dies bedeutet, dass beim Hinzufügen eines Modells das Modell in den entsprechenden Ort in der Sammlung eingefügt wird. Der Komparator kann in Sortby definiert werden oder zeigt sortierte Eigenschaften in einer Zeichenfolge an.
Die Sortby -Komparatorfunktion erhält ein Modell und gibt eine Nummer oder eine String zurück.
Die Sortiervergleichsfunktion erhält zwei Modelle. Wenn das erste Modell dem zweiten Modell voraus ist, gibt es -1 zurück; Wenn die beiden Modelle der gleichen Ebene haben, gibt es 0 zurück; Wenn das zweite Modell dem ersten Modell voraus ist, gibt es 1 zurück.
Schauen wir uns das folgende Beispiel an:
Die Codekopie lautet wie folgt:
var student = backbone.model;
var student = neues backbone.collection;
students.comParator = 'Name';
students.add (neuer Schüler ({Name: "name1", roll: 9}));
students.add (neuer Schüler ({Name: "name2", roll: 5}));
students.add (neuer Schüler ({Name: "name3", roll: 1}));
Alert (Studenten.pluck ('Roll'));
Der zu verglichene Satz wird nicht automatisch neu angeordnet, selbst wenn wir die Eigenschaften des Modells ändern. Daher sollten wir die Sortierung aufrufen, wenn die Schätzung nach der Änderung der Modellattribute die Sortierung beeinflusst.
7. sortieren
Beim Hinzufügen von Modellen zu einer Sammlung sollte die Sammlung gezwungen werden, neu zu bestellen. Um das Sortieren beim Hinzufügen eines Sammelmodells zu deaktivieren, können Sie den Parameter {sort: false} übergeben. Das Aufrufen des sortierten Triggers überprüft diesen Parameter.
Die Codekopie lautet wie folgt:
SortByType: Funktion (Typ) {
this.sortkey = Typ;
this.sort ();
}
Und Funktionen anzeigen:
Die Codekopie lautet wie folgt:
SortThingsByColumn: Funktion (Ereignis) {
var type = event.currentTarget.classlist [0]
this.collections.things.sortByType (Typ)
this.render ()
}
8. Picking
PLuck: Wählen Sie ein Attribut aus jedem Modell in der Sammlung aus, das dem Aufrufen der Karte vom Iterator und der Rückgabe eines einzelnen Attributs entspricht.
Die Codekopie lautet wie folgt:
var Song = neues Backbone.Collection ([[
{Name: "Flatts"},
{Name: "omc"},
{Name: "Jackson"}
]);
var names = Songs.pluck ("Name");
Alert (json.Stringify (Namen));
9. Wo
Wo: Gibt eine Reihe von Modellen in der Sammlung zurück, die den übergebenen Eigenschaften mit Filtern entspricht.
Die Codekopie lautet wie folgt:
var Song = neues Backbone.Collection ([[
{Name: "Ja, ich mache", Künstler: "Flatts"},
{Name: "Wie bizarr", Künstler: "Wie bizarr"},
{Name: "Was tut am meisten weh", Künstler: "Flatts"},
]);
var artists = Song.where ({künstler: "flatts"});
Alarm (Künstler.Length);
10. URL
Das Einstellen von URL -Eigenschaften in der Sammlung bezieht sich auf den Standort des Servers. Die Modelle innerhalb der Sammlung verwenden diese URL, um ihre eigene URL zu erstellen.
Die Codekopie lautet wie folgt:
var lieder = backbone.collection.extend ({{
URL: '/Songs'
});
var lieder = backbone.collection.extend ({{
URL: function () {
zurück this.document.url () + '/Songs';
}
});
11. Analyse
Parse: By Backbone beim Abrufen aufgerufen, unabhängig davon, ob der Server das Modell der Sammlung zurückgibt. Diese Funktion übergibt das ursprüngliche Antwortobjekt, das ein Array von Modelleigenschaften zurückgeben sollte, die der Sammlung hinzugefügt wurden. Die Standardimplementierung ist No-Op-Operation. Einfache JSON-Reaktion, überschreiben Sie diese mit einer bereits bestehenden API oder einer besseren Namespace-Antwort.
Die Codekopie lautet wie folgt:
var lieder = backbone.collection.extend ({{
Analyse: Funktion (Antwort) {
Return Response.Results;
}
});
12. Extraktion
Fetch: Extrahieren Sie den Standardmodellsatz der Sammlung vom Server und setzen Sie sie nach dem Abrufen in die Sammlung. Diese Option Hashh akzeptiert Erfolg oder Fehler -Rückrufe, die drei Parameter (festlegen, Antwort, Option) übergeben. Geben Sie dann die Modelldaten vom Server zurück. Es wird verwendet, um das zusammengezogene extrahierte Modell einzurichten.
Die Codekopie lautet wie folgt:
Backbone.Sync = Funktion (Methode, Modell) {
alert (Methode + ":" + model.url);
};
var Songs = neues Backbone.Collection;
Songs.Url = '/Songs';
Songs.fetch ();
Wie Sie oben sehen können, gibt es so viele Möglichkeiten, sie zu beherrschen, um die Qualität Ihres Codes zu verbessern.