Ü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

Schreibe einen Kommentar