【发布时间】:2015-02-21 11:29:06
【问题描述】:
我已经开始使用 NodeJS 几个月了,但在局部渲染方面遇到了一个小问题。 我想在一些模板中包含一个局部视图,但我希望这个局部视图是从服务器动态生成的(因为它取决于从数据库和其他东西中检索到的数据)。
我尝试创建一个模板助手来执行此操作,但由于处理需要异步完成,我无法在我的模板中获得要写入的 html 返回。
基本上对我来说最好的是类似于(这段代码显然不起作用):
template_file.js
...
<div>
<%- generatePartial(data) %>
</div>
...
helper_middleware.js
module.exports = function registerAppHelpers(request, response, next)
{
var appHelpers = {};
appHelpers.generatePartial = function generatePartial(data)
{
if (request.isAuthenticated())
{
DB.findOne({ id: request.user.id }, function found(error, obj)
{
if (error)
...
if (obj)
{
return generatePartial1(data);
}
else
{
return generatePartial2(data);
}
});
}
else
{
return generatePartial3(data);
}
};
// Register the helpers as local variables to be accessed within a template.
for (var helper in appHelpers) {
response.locals[helper] = appHelpers[helper];
}
next();
};
现在我想处理这个问题的方式可能完全错了,所以如果你有任何解决方案/其他建议,请不要犹豫。
PS : 我使用 ExpressJS 和 EJS。
【问题讨论】:
标签: node.js express ejs partials embedded-javascript