我很难理解如何将从数据库中获取的对象传递给ustry.js模板。
假设我有一个模板:
{#person}
{name} - {title}
{/person}
我尝试设置一个类似这样的上下文:
var ctx = {
person: return chunk.map(function(chunk) {
database.person(12345, function(data) {
dust.nextTick(function() {
chunk.end(data); // What to really do here?
});
});
});
}
其中database.person从数据库中获取对象并将其传递给回调。
然后我将运行render函数:
res.render('person', ctx);
正确的形式是:
var ctx = {
person: function(chunk, context, bodies) {
return chunk.map(function(chunk) {
database.person(1234, function(data) {
return chunk.render(bodies.block, context.push(data)).end();
});
});
}
}
我不必像艾伦的回答那样调用render来编写文字。
整个数据库调用必须包含在return chunk.map调用中才能起作用。我还必须链接一个结束命令,以将结果发送回流。
为何需要这些调用,请参见dust.js指南(http://akdubya.github.io/dustjs/#guide):
chunk.map告诉Dust制造一个新的块,在继续渲染其余模板之前,在输出流中保留一个插槽。您必须(最终)在映射的块上调用chunk.end(),以将其内容织回到流中。
这是LinkedIn指南页面中未解决的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句