Backbone js: Wie entferne ich zusätzliche Tags in der Ansicht?

8

Ich habe die folgende Vorlage:

%Vor%

und die folgende Ansicht:

%Vor%

Das Problem ist, es erzeugt die folgende Ausgabe:

%Vor%

Wie entferne ich das äußere div? Ich habe versucht, die TagName-Eigenschaft aus der Sicht zu entfernen, aber es setzt immer noch ein div?

    
firebird 05.10.2011, 15:37
quelle

2 Antworten

10

Ändern Sie Ihre Vorlage, um das äußere div loszuwerden:

%Vor%

Sagen Sie der Ansicht, dass das div mit einem Klassennamen erstellt werden soll:

%Vor%

ODER Wenn Sie die aktuelle Vorlage behalten möchten, sagen Sie der Ansicht, welche el verwendet werden soll (vorausgesetzt, dass sie bereits auf Ihrer Seite vorhanden ist):

%Vor%

BEARBEITEN Sie haben gefragt, ob Sie das im Initialisierer machen können? Sicher, aber Sie müssen sicherstellen, dass Sie die Ereignisse haken:

%Vor%

Ehrlich gesagt, die ersten beiden Optionen sind eher entkoppelte IMO.

    
Brian Genisio 05.10.2011, 15:50
quelle
3

Eine weitere Option, die keine Änderung der Vorlage erfordert, ist die Verwendung von setElement

  

setElement view.setElement (Element)

     

Wenn Sie eine Backbone-Ansicht auf ein anderes DOM-Element anwenden möchten, verwenden Sie setElement, das auch die zwischengespeicherte $ el-Referenz erstellt und die delegierten Ereignisse der Ansicht vom alten in das neue Element verschiebt.

Damit können Sie tagName vollständig umgehen. Sie können tagName aus Ihrer View-Definition herauslassen (standardmäßig ist es div). Sie müssen sich auch keine Gedanken darüber machen, wie Sie Ihre Ereignisse manuell delegieren oder ob ein Elementselektor im Voraus bekannt ist, wie in der Antwort von @Brian Genisio erwähnt, obwohl diese anderen Methoden ebenfalls funktionieren.

%Vor%     
Jeremy Zerr 29.05.2014 23:10
quelle

Tags und Links