2012-12-01 11 views
7

Ich versuche Backbone zu lernen. Ich verstehe, dass el das Element ist, auf das gehandelt wird. Wenn es nicht angegeben ist, ist es ein leeres div. Ich erstelle eine Vorlage in meiner Ansicht und gebe das Ansichtsobjekt zurück. Ich rendere dann die Ansicht, aber ich verstehe nicht, warum ich el nach der Renderfunktion ketten. Könnte mir bitte jemand diese Codezeile erklären:Was macht das 'el' in view.render(). El?

var view = new PersonView(); 
this.$('#family_list').children().append(view.render().el); 

Für was ist das? Vielen Dank.

Antwort

19

Die Methode .append() von jQuery erwartet, dass eine Zeichenfolge aus HTML oder ein DOM-Element an den aufrufenden Knoten angehängt wird. Die .el-Eigenschaft der Ansicht ist ihr gebundenes DOM-Element. Nach dem Aufruf von view.render() wird die .el DOM-Elementeigenschaft in die Methode jQuery .append() übergeben, sodass jQuery .append() den aktualisierten (neu gerenderten) DOM-Knoten erhält.

Dies wird möglich, weil der .render() Aufruf thisas suggested in the documentation zurückgeben muss. Sein Rückgabewert ist daher das View-Objekt selbst , und von diesem kann sofort auf die .el verwiesen werden.


Wikipedia: Fluent interfaces

+1

Dies ist eine großartige Antwort - Danke Michael! –