如何使用编译的尘埃js源

时间:2012-07-21 18:28:27

标签: javascript dust.js

我在Dust js中有一个示例模板,并使用dust-down编译该源代码。

当我(使用脚本标记)将模板js添加到我的代码中时,我能够在控制台中看到编译对象。但是我该如何使用该对象呢?

Example :

Created a compile file with the name dusttest.js and included it in my HTML page.
In firebug console, i am able to view the object like dust.cache.dusttest

如何将对象传递给该编译对象? 在其他方面,而不是dust.render(“dusttest”,obj,function(){}),我怎么能直接使用该编译对象?

1 个答案:

答案 0 :(得分:2)

我没有使用过尘,但我确实查看了它的最新源代码 这些是执行实际编译的行:

var filename = filepath.split("/").reverse()[0].replace(".html", "").replace(".dust", "");
file_to_create = file_to_create + "\\" + filename + "_"  + version + ".js";

//compile to dust
// notice the second parameter to compile() is the BASE of the filename!
var compiled = dust.compile(data, filename);

由于它使用的是dust.compile(),因此用法应与文档中的用法相同。由于编译结果是javascript,您应该像普通的js脚本一样引用它。

<script type='text/javascript' src='/mycompilecode/mytemplate-1.0.js'></script>

根据docs,当代码加载时,它将包含并执行dust.register()方法,然后可以使用。

如果您在上面注意到如何使用编译器,它会使用基本文件名作为键,这就是您要传递给dust.loadSource()的内容。

...所以,让我们把它们放在一起......

  1. 以“intro.html”文件作为模板开始。
  2. 使用灰尘进行编译。我假设结果将是这个(如果你没有在命令行上指定灰尘,则0_0_1是默认版本): /templates/compiled/intro_0_0_1.js
  3. 以下代码是如何使用的(假设已经加载了灰尘):

    <script type='text/javascript' src='/templates/compiled/intro_0_0_1.js'></script>
    <script type='text/javascript'>
        var myCompiledTemplateKey = 'intro'; // notice! no version or .js extension
        dust.loadSource(myCompiledTemplateKey );
        dust.render(myCompiledTemplateKey , {name: "Fred"}, function(err, out) {
            console.log(out);
        });
    </script>