Wie soll mit einer Ansicht el
umgegangen werden? Es muss eingestellt werden, sonst werden keine Ereignisse ausgelöst (siehe hier ).
Aber sollte es ein Element sein, das bereits auf der Seite ist? In meiner App rendere ich eine Vorlage (jQuery Templates) in eine Fancybox. Was soll das el
in diesem Fall sein?
javascript
backbone.js
backbone-views
Manuel Meurer
quelle
quelle
el
Ding spielt.el
ist wiegf
. niemand kann sie vollständig verstehen.Antworten:
In einer Ansicht el findet die gesamte Ereignisbindung statt. Sie müssen es nicht verwenden, aber wenn Sie möchten, dass das Backbone Ereignisse auslöst, müssen Sie Ihre Rendering-Arbeit am el ausführen. Eine Ansicht el ist ein DOM-Element, muss jedoch kein bereits vorhandenes Element sein. Es wird erstellt, wenn Sie keine von Ihrer aktuellen Seite ziehen, aber Sie müssen sie in die Seite einfügen, wenn Sie jemals möchten, dass sie etwas bewirkt.
Ein Beispiel: Ich habe eine Ansicht, die einzelne Elemente erstellt
In der ersten Ansicht werden nur die Listenelemente erstellt, und in der zweiten Ansicht werden sie tatsächlich auf der Seite platziert. Ich denke, das ist ziemlich ähnlich zu dem, was im ToDo-Beispiel passiert auf der backbone.js-Site . Ich denke, Konvention ist es, Sie Inhalt in die el zu machen. Das el dient also als Landeplatz oder Container zum Platzieren Ihrer Vorlageninhalte. Das Backbone bindet dann seine Ereignisse an die darin enthaltenen Modelldaten.
Wenn Sie eine Ansicht erstellen , können Sie die el in vier Möglichkeiten , mit manipulieren
el:
,tagName:
,className:
, undid:
. Wenn keines davon deklariert ist, ist el standardmäßig ein Div ohne ID oder Klasse. Es ist zu diesem Zeitpunkt auch nicht mit der Seite verknüpft. Sie können das Tag mithilfe von tagName in etwas anderes ändern (z. B. erhaltentagName: "li"
Sie ein el von<li></li>
). Sie können die ID und Klasse von el ebenfalls festlegen. Trotzdem ist el kein Teil Ihrer Seite. Mit der Eigenschaft el können Sie das el-Objekt sehr feinkörnig bearbeiten. Die meiste Zeit benutze ich eineel: $("someElementInThePage")
Dies bindet tatsächlich alle Manipulationen, die Sie an el in Ihrer Ansicht vornehmen, an die aktuelle Seite. Wenn Sie andernfalls sehen möchten, dass all die harte Arbeit, die Sie in Ihrer Ansicht geleistet haben, auf der Seite angezeigt wird, müssen Sie sie an einer anderen Stelle in Ihrer Ansicht einfügen / an die Seite anhängen (wahrscheinlich beim Rendern). Ich stelle mir el gerne als den Container vor, den all Ihre Ansichten manipulieren.quelle
Jetzt etwas alt, aber ich war auch verwirrt, und für andere Leute, die hierher kommen, könnte diese Geige helfen - http://jsfiddle.net/hRndn/2/
quelle
Sie möchten, dass Ihr 'el' auf ein Element verweist, das ein untergeordnetes Element enthält, das ein Ereignis enthält, das eine Änderung in Ihrer Ansicht auslöst. Könnte so breit sein wie ein "body" -Tag.
quelle