Есть ли способ отобразить шаблон для переменной вместо вывода?
res.render('list.ejs', {
posts: posts
});
что-то вроде этого
var list = render('list.ejs', {
posts: posts
});
Есть ли способ отобразить шаблон для переменной вместо вывода?
res.render('list.ejs', {
posts: posts
});
что-то вроде этого
var list = render('list.ejs', {
posts: posts
});
Самый простой способ сделать это - передать обратный вызов res.render
в вашем примере:
res.render('list.ejs', {posts: posts}, function(err, list){
//
});
Но если вы хотите отображать частичные шаблоны, чтобы включить их в другой шаблон, вам обязательно нужно взглянуть на просмотреть частичные файлы.
Я новичок в express.js, так или иначе, я не уверен, что вы можете получить доступ к предоставленной строке таким образом, хотя, если вы посмотрите на источник выражения "view.js" на github (здесь) вы видите, что он принимает обратный вызов как второй аргумент, если это может помочь: вы можете получить доступ к выделенной строке там.
В противном случае, я думаю, что довольно легко исправить код, чтобы добавить метод, возвращающий отображаемую строку, не отправив ее: в строке # 399 вы имеют тот самый вызов, который дает строку, которую вы ищете.
Это был не вопрос, который первоначально задавался, но на основе комментариев от OP и других, кажется, что цель состоит в том, чтобы частично обработать json (jsonp), что я только что должен был сделать.
Это довольно легко:
app.get('/header', function (req, res)
{
res.render('partials/header', { session: req.session, layout: null }, function (err, output)
{
res.jsonp({ html: output });
});
});
Примечание. В моем случае частичный заголовок потребовал сеанса, а моя библиотека шаблонов (express-hbs) нуждалась в layout: null
для частичного отображения без использования макета по умолчанию.
Затем вы можете вызвать это из кода Javascript на клиенте, как и любая другая конечная точка JSONP.