/ / Was sind aus der Sicht von el und $ el Backbone? - Javascript, backbone.js, Zepto

Was sind el und $ el im Rückgrat? - javascript, backbone.js, zepto

Ich versuche zu vermeiden, dass beim Rendern der Ansicht im Backbone ein leeres div verwendet wird. Ich mache es mit dem folgenden Code

this.$el.replaceWith(this.template(this.model.attributes));
return this;

aber ich bekomme div leer, wenn ich diese ansicht von anhänge

$("#product-pannel").append(productsView.render().el);

Jemand gibt die Lösung so

render: function(){
var html = this.template(this.model.toJSON()));
var newElement = $(html)
this.$el.replaceWith(newElement);
this.setElement(newElement);
return this;
}

aber ich kann nicht verstehen, warum ich das oben so kompliziert machen soll kann mir jemand das geheimnis von el ein $el?

Antworten:

2 für die Antwort № 1

el zeigt auf das Ansichtselement (dasjenige, das den Rest der Vorlage enthält) und $el ist ein jQuery-Objekt, das neu erstellt wird el element Damit Sie nichts tun müssen $(this.el) die ganze Zeit.

Dies wird in der Dokumentation deutlich erwähnt.

Sie können entweder ein vorhandenes DOM-Element als Ansichtselement mit angeben el Option oder Backbone erstellt ein DOM-Element für jede Ansicht. Standardmäßig ist dies ein <div>. Wenn du kein leeres willst <div>Passen Sie das Element an, das das Backbone als oberstes Element Ihrer Ansichtsvorlage erstellt, indem Sie Optionen wie verwenden tagName, attributes etc.

setElement ist für die dynamische Änderung des Ansichtselements zu etwas anderem ... Ich habe selten (oder nie) gesehen, wie es tatsächlich benutzt wird.