Node / Express - 响应中的多个渲染视图
Node / Express - Multiple Rendered Views in Response
我正在执行一个 AJAX 调用,我想 return 一个 JSON 响应,其中包含几个渲染的局部视图,我可以用它们来交换我的不同部分页。所以,例如:
{
"searchResults": "<div>Some HTML string</div>",
"paginationBar": "<div>Another HTML string</div>"
}
我的应用程序是在 Node/Express 上构建的,使用 Express-Handlebars 作为我的视图引擎。我的想法是在我的路线中做这样的事情:
if (req.xhr) {
res.app.render('partials/search/products', {layout: 'ajax'}, function (err, html) {
res.locals.renderedViews.searchResults = html;
}
);
res.app.render('partials/search/pagination', {layout: 'ajax'}, function (err, html) {
res.locals.renderedViews.pagination = html;
}
);
res.json(renderedViews);
}
我该怎么做
如果定义了 res.app.render,您的代码看起来不错,但您需要嵌套它,因为呈现代码可能是异步的:
var renderedViews = {};
res.app.render('partials/search/products', {layout: 'ajax'}, function (err, html) {
renderedViews.searchResults = html;
res.app.render('partials/search/pagination', {layout: 'ajax'}, function (err, html) {
renderedViews.pagination = html;
res.json(renderedViews);
});
});
我正在执行一个 AJAX 调用,我想 return 一个 JSON 响应,其中包含几个渲染的局部视图,我可以用它们来交换我的不同部分页。所以,例如:
{
"searchResults": "<div>Some HTML string</div>",
"paginationBar": "<div>Another HTML string</div>"
}
我的应用程序是在 Node/Express 上构建的,使用 Express-Handlebars 作为我的视图引擎。我的想法是在我的路线中做这样的事情:
if (req.xhr) {
res.app.render('partials/search/products', {layout: 'ajax'}, function (err, html) {
res.locals.renderedViews.searchResults = html;
}
);
res.app.render('partials/search/pagination', {layout: 'ajax'}, function (err, html) {
res.locals.renderedViews.pagination = html;
}
);
res.json(renderedViews);
}
我该怎么做
如果定义了 res.app.render,您的代码看起来不错,但您需要嵌套它,因为呈现代码可能是异步的:
var renderedViews = {};
res.app.render('partials/search/products', {layout: 'ajax'}, function (err, html) {
renderedViews.searchResults = html;
res.app.render('partials/search/pagination', {layout: 'ajax'}, function (err, html) {
renderedViews.pagination = html;
res.json(renderedViews);
});
});