Backbone-Vorlage in einer anderen Vorlage geschachtelt

7

Ist es möglich, eine Vorlage innerhalb einer Vorlage verschachtelt zu haben und über Backbone-Ansicht darauf zuzugreifen?

Zum Beispiel habe ich View1 mit Template1 und View2 mit Template2. Template2 muss sich tatsächlich in einem DIV innerhalb von Template1 befinden. Ich lege den DIV-Container für template2 in template1 mit der entsprechenden ID ab, aber es wird nicht angezeigt, wenn die Seite gerendert wird. Wenn ich den Template2-div-Container aus Template1 entferne und ihn einfach in den Seitenkörper lege, funktioniert er einwandfrei.

Sie fragen sich also, ob das möglich ist, oder ob ich die Ansichten / Modelle usw. verschachteln muss, damit das funktioniert?

Die Daten in Template2 sind technisch nicht mit Template1 verknüpft und müssen nur an einer Position auf der Seite angezeigt werden, die in Template1 eingebettet ist.

    
mbr1022 18.05.2012, 21:07
quelle

5 Antworten

20

Die Art und Weise, wie ich in der Vergangenheit damit umgegangen bin, besteht darin, beide Ansichten getrennt zu definieren und dann beim Rendern von View1 eine neue View2 zu erstellen, sie zu rendern und in View1 einzufügen. Also:

%Vor%     
RTigger 18.05.2012, 21:13
quelle
4

Sie sollten dafür Unteransichten erstellen.

Ich privatisiere gerne Subviews in Schließung und gebe die öffentliche Meinung zurück.

%Vor%     
Trevor 18.05.2012 23:36
quelle
2

Eine weitere nützliche Option, wenn Sie Template2 mehrfach innerhalb von Template1 einfügen müssen, z. B. als <li> elements in einem <ul> , ist das Übergeben einer Template2-Funktion an Template1. (Aus Rico Sta Cruz 'Backbone Patterns .)

%Vor%     
ericsoco 29.06.2013 17:46
quelle
0

Der typische Weg, den ich verstehe, ist, Ansichten als vollständige Objekte zu betrachten, die Sie ineinander einbetten können. Nehmen wir an, Sie haben zwei Ansichten, ViewA und ViewB. Der folgende Code zeigt, wie Sie ViewB in ViewA anfügen können.

%Vor%

Sie können sich vorstellen, wie ViewB verwaltet wird (es Eigenschaften zuweisen oder was auch immer) oder verschiedene Konstruktorargumente an jede ViewB-Instanz übergeben.

    
Michi Kono 18.05.2012 21:17
quelle
0

Eine schlankere Lösung ohne die Notwendigkeit für jQuery append() oder das zusätzliche SubView-Objekt mit einem doppelten jQuery-Bereich besteht darin, die Unterstreichungsmethode strikt vorzulesen / vorzukompilieren und die Unteransicht als Zeichenfolge einzufügen, indem ein innerer verwendet wird Kommentar-Tags in Ihrer Hauptvorlage.

%Vor%

Dies ist besonders nützlich, wenn Ihre Vorlage keine Konstante ist und von einer Eigenschaft des aktuellen Bereichs abhängt.

Beachten Sie, dass Sie für den Umfang dieser Frage das View2-Modell an die Komponente übergeben müssen.

    
hexalys 16.01.2016 22:13
quelle