3 Stimmen

Teilansichten in BackboneJS anzeigen

Gibt es Möglichkeiten, Teilansichten in Backbone zu verwenden? Ich benutze das integrierte Underscore-Template und es gibt nicht viel Dokumentation dazu.

Falls nicht, gibt es Standards/Konventionen oder empfohlene Wege, dies zu tun?

5voto

mikong Punkte 8040

Ja, ich habe das kürzlich ausprobiert. Stellen Sie sicher, dass Sie die Backbone-Dokumentation lesen, insbesondere den Abschnitt zum View.

Zum Beispiel haben Sie ein _new.jst.haml:

%form#story_form.new_story{method: "post"}

Dann können Sie ein _form.jst.haml haben, das die Formularelemente enthält. In Ihrem Backbone.View können Sie zunächst das neue Template an Ihrem el anhängen und dann die view-spezifischen Selektoren von Backbone verwenden (dies steht in ihrer offiziellen Dokumentation unter dem Abschnitt "$(jQuery oder Zepto)"):

$(this.el).html(window.JST['stories/_new'](attrs));
...
this.$('#story_form').html(window.JST['stories/_form'](attrs));

Ich habe Rails verwendet und habe zunächst gelesen, wie man Backbone.js mit Rails in diesem Artikel verwendet. Am Ende dieses Artikels gibt es einen Link zu Teil 2. Ich empfehle, den Teil im ersten Artikel zu überspringen, in dem er die Zeichenkettenverkettung für die Aktualisierung der Ansichten verwendet. Außerdem ist mein Ansatz jetzt ziemlich anders als das, was er getan hat, aber ich denke, es ist ein ziemlich guter Ausgangspunkt, und ich habe sowieso keinen eigenen Artikel vorzuweisen.

Meine Codebeispiele sind ziemlich kurz, aber ich denke nicht, dass ich hier ein komplettes Tutorial schreiben möchte. Lassen Sie mich einfach wissen, was nicht funktioniert, und welche Schritte Ihrer Meinung nach fehlen, und ich werde die Antwort aktualisieren.

5voto

jkreeftmeijer Punkte 105

Ja, Sie können Partial-Views in Ihren Vorlagen verwenden, und Sie müssen sie nicht in Ihrer View-Klasse einrichten, Sie können dies direkt aus Ihren Vorlagen heraus tun. Hier ist ein einfaches Beispiel:

users.jst:

  <% _.each(users, function(user){ %>

      <%= JST['user']({user: user}) %>

  <% }); %>

user.jst:

<%= user.get('name') %>

0voto

Steven Punkte 1644

Es gibt viele "normale" Backbone-Wege, um dies zu tun, aber ich würde dringend empfehlen, sich MarionetteJS, Backbone.CollectionView oder Backbone.LayoutManager anzusehen. Es gibt viel zu beachten, wenn man z.B. Kollektionen rendert (Ereignisse beim Entfernen von Kindern lösen, Selektorbereich, Sortierreihenfolge beibehalten), und es besteht keine Notwendigkeit, das Rad neu zu erfinden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X