有没有办法在DustJs中呈现客户端上没有名称的预编译模板?
因为documentation仅显示名称:
<!-- precompiled templates -->
<script type="text/javascript" src="/lib/templates.js"></script>
<script type="text/javascript">
// The templates are already registered, so we are ready to render!
dust.render('hello', { world: "Saturn" }, function(err, out) {
document.getElementById('output').textContent = out;
})
</script>
<小时/> 编辑:好吧加载文件可能太复杂了,我只是注意到当我们编译时没有指定名称(为了同时编译多个模板),模板的路径是设置为默认名称。它甚至可以使用--pwd flag进行编辑 因此总有一个名称,所以上述功能可以运作。
答案 0 :(得分:2)
听起来您希望在预编译之后通过路径加载模板。 Dust允许您通过AMD(require.js)兼容性来执行此操作。
http://www.dustjs.com/guides/setup/#amd
加载require.js并设置define.amd.dust = true
后,您可以使用模板路径调用dust.render
,Dust会自动为您加载。
请注意,这需要您使用--amd
标记编译模板。
<script src="r.js"></script>
<script type="text/javascript">
define.amd.dust = true;
require(["lib/dust-full"], function(dust) {
dust.render('path/to/your/template', function(err, out) { ... });
});
</script>
Dust存储库有一个using AMD to load templates的例子。