我正在试图找出如何在灰尘视图中包含未编译的灰尘部分。
main.dust:
<div class="container">
{>"toolbar"/}
</div>
toolbar.dust:
<div class="row">
toolbar
{somevariable}
</div>
这会尝试加载已编译的部分名为toolbar.js而不是未编译的toolbar.dust模板?
我在这里发现了这篇文章:How do you include a raw, uncompiled partial in dust.js?这将允许我加载文件,但它们包含的任何{变量}都不会被替换。
我不希望每次更改视图时都要编译视图。如何包含未编译的模板及其变量?
答案 0 :(得分:1)
您可以向Dust添加onLoad
处理程序,告诉它应该如何尝试加载部分内容。默认情况下,Dust希望您预先注册您将尝试使用的所有模板。
更多信息:Loading Templates(听起来您想要加载未编译的模板)
注意:您不应该在生产中真正这样做,因为编译模板比渲染模板要慢得多。如果您使用的是Express,请花些时间设置构建步骤或Express插件以便为您编译。 Dust GitHub存储库中的examples
目录中有一些示例。
onLoad处理程序可能看起来像这样(假设您在服务器上运行Dust - 客户端的想法是相同的):
dust.onLoad = function(templateName, callback) {
fs.readFile(templateName + '.dust', { encoding: 'utf8' }, function(err, data) {
callback(null, data);
});
};
请注意callback
使用Node errback签名,因此您可以将此代码简化为:
dust.onLoad = function(templateName, callback) {
fs.readFile(templateName + '.dust', { encoding: 'utf8' }, callback);
};