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

Schreibe einen Kommentar