2015-05-26 27 views
12

Gibt es in einer Express 4 App eine Möglichkeit, eine Ansicht ohne Layout zu rendern?Express 4 Lenker rendern ohne Layout

Ich habe eine layout.hbs innerhalb des Projekts. Die Datei scheint benutzt zu werden, ohne sie irgendwo registrieren zu müssen und für die meisten Ansichten ist das in Ordnung, aber was ist, wenn nur eine einzelne Ansicht gerendert werden muss ohne?

Antwort

26

Angenommen, Sie verwenden Express-Lenker, können Sie beim Aufruf der Rendermethode ein anderes Layout von Ihrer Route/Ihrem Controller festlegen. Um das Layout komplett zu entfernen, können Sie das Layout auf false setzen.

router.get('/', function(req, res) { 
    res.render('home', {layout: false}); 
}); 

https://github.com/ericf/express-handlebars#layouts

+0

Eigentlich eine zusätzliche Eigenschaft solcher Daten sollte ich die Standard-Paket hbs wurde mit das kommt vom Express Generator aber ich werde es versuchen. Danke – adrianvlupu

+0

und könnte jemand an dieser Stelle irgendeinen Kontext an die View übergeben? Ich kann keine Möglichkeit finden, das Layout zu deaktivieren und einen Kontext zu übergeben. für zB router.get ('/', Funktion (req, res)) { res.render ('home', {layout: false}, Daten); }); – Alpagut

+0

Ja, Sie fügen nur Ihre Daten zu dem gleichen Objekt hinzu, das 'layout: false' hat. So: 'router.get ('/', Funktion (req, res)) {res.render ('home', {layout: false, data: data});});' – Ryan

0

Es sollte klar sein, wenn Sie Daten zu machen, dass die layout lediglich

var data = { 
    layout: false, 
    var1: var1, 
    var2: var2 
}; 

res.render('home', data); 
Verwandte Themen