Dust.js - 在客户端渲染预编译的匿名模板

时间:2015-07-24 16:12:22

标签: client-side dust.js precompiled-templates

有没有办法在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进行编辑 因此总有一个名称,所以上述功能可以运作。

1 个答案:

答案 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的例子。