Express.js hbs-Modul - Registrierung der Teiltöne aus .hbs-Datei
Bin ich mit dem handlebars.js hbs-wrapper in express.js. Ich habe Vorlagen arbeiten gut, aber ich bin benötigen, fügen Sie in partials zu Rendern mit meinen Ansichten.
Ich würde gerne etwas wie das hier tun:
hbs.registerPartial('headPartial', 'header');
//where "header" is an .hbs file in my views folder
Jedoch, es wirft einen "header teilweise nicht gefunden werden können".
Kann ich die registerPartial Arbeit, wenn ich übergeben Sie eine Zeichenfolge von html, um den zweiten Parameter, aber ich möchte verwenden separate Dateien anzeigen, die für meine Teiltöne.
Habe ich nicht gefunden, keine Dokumentation, aber hoffen kann ich nur etwas fehlt einfach.
Weiß jemand, wie die Verwendung von view-Dateien in die registerPartial Methode? Wenn ja, wie implementiere ich diese?
UPDATE
Geben, mehr Kontext, lassen Sie mich hinzufügen, mehr code.
Hier ist mein "server" - Datei - app.js
var express = require('express')
, routes = require('./routes')
, hbs = require('hbs');
var app = module.exports = express.createServer();
//Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'hbs');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
//this is the line that generates the error
hbs.registerPartial('headPartial', 'header');
//What I'm expecting is for "headPartial" to be a compiled template partial
//of the template within views/header.hbs, but it is not loading this way.
//If I do something like hbs.registerPartial('headPartial', '<p>test</p>');
//then it does work. I need to know how to pass an .hbs file to the
//registerPartial method.
//Routes
app.get('/', routes.index);
app.listen(3000);
Und hier ist meine Routen.index-Datei:
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
In meine Ordner sichten, ich habe drei Vorlagen:
views/
header.hbs (this is my partial)
index.hbs
layout.hbs
In meinem index.hbs-Datei, nenne ich die 'headPartial' teilweise mit:
{{> headPartial}}
Jede Hilfe wird sehr geschätzt.
InformationsquelleAutor swatkins | 2011-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese code lädt alle partiellen Vorlagen in einem Verzeichnis und stellt Sie zur Verfügung, indem Sie mit dem Namen:
Danke Ben, das ist wirklich eine Menge geholfen.
InformationsquelleAutor Ben Williamson
Für die Bequemlichkeit, registerPartials bietet eine Möglichkeit zum schnellen laden alle partialtöne aus einem bestimmten Verzeichnis:
Partials geladen sind, aus einem Verzeichnis benannt sind, auf Grundlage Ihrer Dateiname, wobei Leerzeichen und Bindestriche werden durch Unterstriche ersetzt Zeichen:
Prost!
Das ist großartig, aber bewusst sein, dass es Lasten Teiltöne asynchron mit einer callback - Sie wollen wahrscheinlich nicht zu akzeptieren Anfragen, bis diese abgeschlossen ist: Helper und Partials
InformationsquelleAutor milyord
Sieht aus wie erstellen Sie eine variable, und ziehen in den template-code manuell funktioniert:
und später:
dies scheint wie eine Menge zusätzlicher Arbeit zu verklagen Teiltöne in express3
InformationsquelleAutor swatkins
Für mich, ich hatte template-Datei, meine-teilweise.hbs
Dann habe ich versucht, Zugang zu Ihnen über:
Aber die teilweise wurde gespeichert in hbs als my_partial unabhängig von dem Dateinamen.
Dies ist Dank der hbs version 3.1.0 Linie 218
Dies ist in der readme
InformationsquelleAutor Dan Baker
Für mich, ich habe eine Funktion wie:
Laufen statupfunc.registerHbsPartials auf app starten und dann registrieren gulp Uhr mit statupfunc.registerOneHbsPartials registrieren Teiltöne auf die neue Schöpfung
InformationsquelleAutor Hoàng Nghĩa