gpt4 book ai didi

javascript - dust js的编译源码使用方法

转载 作者:行者123 更新时间:2023-11-30 18:23:02 24 4
gpt4 key购买 nike

我在 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(){}),我如何直接使用该编译对象?

最佳答案

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

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-down 如何使用编译,它使用基本文件名作为键,这就是您要传递给 dust.loadSource() 的内容。

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

  1. 以文件“intro.html”作为模板开始。
  2. 使用 dust-down 编译它。我假设结果将是这样的(如果您没有在命令行上指定除尘,则 0_0_1 是默认版本):/templates/compiled/intro_0_0_1.js

下面的代码是如何使用它的(假设已经加载了 dust):

<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>

关于javascript - dust js的编译源码使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com