Я использую файл handlebars.js hbs в express.js .У меня есть шаблоны, работающие нормально, но мне нужно добавить партиалы, которые будут отображаться с моими представлениями.
Я хотел бы сделать что-то вроде этого:
hbs.registerPartial('headPartial', 'header');
// where "header" is an .hbs file in my views folder
Однако, этобросая «частичный заголовок не может быть найден».
Я могу заставить registerPartial работать, если я передаю строку html второму параметру, но я хотел бы использовать отдельные файлы представления для моих частичных возможностей.
Я не нашел никакой документации по этому вопросу, но надеюсь, что мне просто не хватает чего-то простого.
Кто-нибудь знает, как использовать файлы представления в методе registerPartial?Если да, то как мне это реализовать?
ОБНОВЛЕНИЕ
Чтобы дать больше контекста, позвольте мне добавить больше кода.Вот мой "серверный" файл - 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);
А вот мой файл rout.index:
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
В моей папке просмотров у меня есть три шаблона:
views/
header.hbs (this is my partial)
index.hbs
layout.hbs
В моем файле index.hbs я вызываю партиал 'headPartial' с помощью:
{{> headPartial}}
Любая помощь очень ценится.