2013-02-04 19 views
36

Die Fire Up Ember.js screencast verwendet partial, template, render, um Vorlagen in Vorlagen zu rendern, aber ich bin mir immer noch nicht sicher, ich weiß, welche zu verwenden wann.Lenker teilweise vs. Render vs Vorlage

Im gleichen Screencasts der partial den Kontext als Anwendung und alle Daten in Bezug auf den Stromregler erklärt, während render die passende Vorlage ist der angegebenen verwendet Controller, Kontext usw.:

Fire Up Ember.js: partial versus Fire Up Ember.js

Kann jemand bitte verdeutlichen die Unterschiede zwischen partial, template, render und wann (Beispiele) zu verwenden welche?

Antwort

35

So wie ich es verstehe, die Art, wie sie brechen ist wie folgt:

„machen“ gibt Ihnen eine ganze Ansicht/Controller/template Rahmen seiner eigenen, mit zu arbeiten.

Ein Beispiel wird eine Top-Navigation sein, die dynamische Teile enthält. Der Inhalt wird in einem TopNavController verwaltet und mit "render" in die Anwendungsvorlage eingefügt.

"teilweise" wird eine Vorlage einfügen, aber diese Vorlage wird den aktuellen Kontext anstelle seiner eigenen verwenden. Teilweise ist auch ein neuerer Teil des Frameworks, der in gewissem Umfang die Verwendung von Templates ersetzen soll.

Ein Beispiel würde eine Liste von Benutzern zeigen und jeder Benutzer ein relativ kompliziertes Stück in der Liste sein (Avatare, Name, E-Mail, usw.) können Sie einfach durch die Liste und fügen Sie die partielle im Kontext von jeder Benutzer.

"Vorlage" fügt nur die Vorlage mit dem aktuellen Kontext ein. Ich glaube, es ist kein guter Stil, die Vorlage zu verwenden, um Teile innerhalb einer Vorlage zu rendern. Sie sollten lieber "teilweise" verwenden, obwohl die Vorlage in den meisten Fällen genauso funktioniert.

+1

Das war sehr hilfreich, danke. Könnten Sie auch den Unterschied zwischen '' '{{render}}' '' '' '' {{partially}} '' '' '' '' {{view}} '' '' '' '' '{{control }} '' '? –

32

Diese chart in Ember's Website gegeben gibt einen guten Vergleich zwischen Render, Teilansicht und Ansicht.

Hier ist ein Ausschnitt Bild des Vergleichs in der Website angegeben:

enter image description here

+4

Es könnte nicht schaden, Snippets herauszuziehen, die für die Frage des Posters relevant sind. –

+1

Ich kann Ihnen nicht sagen, wie oft ich durch diese Antwort gekommen bin, um zu dieser Tabelle zu gelangen. – mziwisky

0

In Bezug auf der Client-Seite der Speichernutzung, die besser ist, oder teilweise übertragen. Angenommen, Teil wäre besser als einige kleinere Objekte