Übergeben von Argumenten an ein backbone-Sicht
Gerade erst angefangen mit Rückgrat. Ich habe eine generische Ansicht darstellen können, eine Sammlung als eine Liste mit einem Titel. Ich bin derzeit die übergabe der Sammlung und Titel in der render-Methode, aber das scheint ein wenig seltsam. Gibt es einen anderen Weg, die mehr kanonische?
E. g.:
var ListView = Backbone.View.extend({
template: _.template([
"<div>",
"<% if (title) { %><h2><%= title %></h2> <% } %>",
"<% if (items.length > 0) { %>",
"<ul>",
"<% items.each(function(item) { %>",
"<%= itemTemplate(item) %>",
"<% }); %>",
"</ul>",
"<% } else { %><p>None.</p><% } %>",
"</div>"
].join('')),
itemTemplate: _.template(
"<li><%= attributes.name %> (<%= id %>)</li>"
),
render: function(items, title) {
var html = this.template({
items: items /* a collection */,
title : title || '',
itemTemplate: this.itemTemplate
});
$(this.el).append(html);
}
});
var myView = new ListView({ el: $('#target') });
myView.render(myThings, 'My Things');
myView.render(otherThings, 'Other Things');
InformationsquelleAutor sprugman | 2012-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie pass-Attribute in der
initialize()
Funktion:Also hier würde man die Attribute als Objekt, etwa so:
Nun haben Sie die Werte, die Sie übergeben, zugänglich in diesem Beispiel.Optionen
Passieren in einer Sammlung, die ich empfehle, eine übergeordnete Sicht und eine Untersicht:
Sollten Sie immer Griff die Modelle in einer Sammlung, nicht nur die Daten der Sammlung.
Eigentlich... wenn ich nur auf der Durchreise einige Optionen bei der Instanziierung übergeben, ich glaube nicht, dass ich mich selbst brauchen, um das initialize-Methode -- setzt es automatisch die übergebenen Optionen die an den Konstruktor in einem options-Objekt.
Und dann, wenn ich don ' T wollen, erstellen Sie eine neue Ansicht für jede Sammlung, die ich tun kann, myViewInstance.Optionen.einige = 'Neuer Wert'...
Diese Methode ist für das bestehen in den Optionen, nichts mehr. Wenn Ihr auf der Durchreise sind, in eine Sammlung, wenn es effizienter ist, um eine Sicht für die Sammlung selbst, und eine Untersicht, die für jedes Modell in dieser Sammlung.
Ich habe Hinzugefügt, um die Antwort auf die Weise, die Sie behandeln soll, die Sammlungen und Ihre Ansichten
InformationsquelleAutor Austin
Sollten Sie eine Modell für Ihre Ansicht und access-Modell die Eigenschaften, die beim Rendern der Ansicht.
Können Sie ein Modell und eine Sammlung zur gleichen Zeit.
wie Sie auf das Modell innerhalb der Ansicht. Ist es dieser.Modell. Ich Frage dies, weil zum Beispiel, wenn ich den pass: ListView({soption:true,Modell:myModel}), dann kann ich den Zugriff soption mit: diesem.Optionen.soption aber dann würde das Modell auch zugänglich sein.Optionen....?
Die Beantwortung meine eigenen Kommentare: das Modell zugegriffen werden kann.Optionen.Modell innerhalb des backbone-Ansicht.
InformationsquelleAutor algiecas