你如何在dust.js中包含原始的,未编译的部分?

时间:2015-12-22 00:34:02

标签: dust.js

我的尘埃工作得相当好,但我希望能够包含一个文件,例如css文件,而无需编译和渲染它。

似乎我可能需要创建一个onLoad处理程序来加载文件并直接注册内容。

有没有办法在尘埃中做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以利用Dust对流的本机支持和承诺,使文件包含非常好。确切的实现取决于您是否在服务器或客户端上运行Dust,但想法是一样的。

编写一个加载文件的助手,并为结果返回Stream或Promise。 Dust会异步将其呈现到模板中,因此执行文件I / O不会阻止处理模板的其余部分。

为简单起见,我将编写一个上下文帮助程序,但您也可以将其作为Dust全局帮助程序。

setOnKeyPressed((ev)->{
    logic.keyReaction(KeyCode.fromCode(ev.getCode().impl_getCode()));
    ev.consume();
        });

setOnKeyReleased((ev)->{
    logic.keyReactionReleased(KeyCode.fromCode(ev.getCode().impl_getCode()));
    ev.consume();
        });

然后像这样使用它:

{
  "css": function(chunk, context, bodies, params) {
    // Do some due diligence to sanitize paths in a real app
    var cssPrefix = '/css/';
    var path = cssPrefix + context.resolve(params.path);
    return $.get(path);
  }
}

或服务器的流媒体版本:

{#css path="foo/bar.css"}{.}{/css}