我在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(){}),我怎么能直接使用该编译对象?
答案 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()的内容。
...所以,让我们把它们放在一起......
以下代码是如何使用的(假设已经加载了灰尘):
<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>