javascript - 预编译模板的 Dust.js 客户端渲染问题

标签 javascript dust.js client-side-templating

我正在尝试使用预编译的 dust 模板测试简单的客户端渲染,但是当我尝试渲染时,dust 提示它找不到我的模板:

[DUST WARN]: Chunk error [Error: Template Not Found: basicName] thrown. Ceasing to render this template. 

我的页面是这样的:

<!DOCTYPE html>
<html lang="en-US">
<head>
    <script type="text/javascript" src="dust-full-2.4.js"></script>
    <script type="text/javascript" src="basicName.js"></script>
</head>
<body>
    <div id="dustContainer"></div>
    <script>
        var json_payload = { "name": {
            "firstName" : "Brock",
            "lastName" : "Sampson"
        }};
        var dustContainerDiv = document.getElementById("dustContainer");

        dust.render("basicName", json_payload, function(err, out) {
                dustContainerDiv.innerHTML = out;
        });
    </script>
</body>
</html>

还有我的模板文件(basicName.tl):

<p>{name.firstName}</p><p>{name.lastName}</p>

编译为此(basicName.js):

(function(){dust.register("basicName.tl",body_0);function body_0(chk,ctx){return chk.write("<p>").reference(ctx.getPath(false, ["name","firstName"]),ctx,"h").write("</p><p>").reference(ctx.getPath(false, ["name","lastName"]),ctx,"h").write("</p>");}return body_0;})();

我已经使用客户端模板编译测试了相同的模板/有效负载/html,一切正常。为了能够使用预编译模板,我缺少什么?

最佳答案

如果仔细查看编译后的灰尘模板,有一行代码:

... dust.register("basicName.tl", ...

这行代码将键“basicName.tl”下的已编译模板添加到dust.cache中。

在引擎盖下 dust.render 将尝试在 dust.cache 中找到给定的模板名称

下面的代码将无法工作,因为 dust 在 dust.cache 中找不到“basicName”模板:

dust.render("basicName", json_payload, function(err, out) {
...

这样调用应该可行:

dust.render("basicName.tl", json_payload, function(err, out) {
...

关于javascript - 预编译模板的 Dust.js 客户端渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140113/

相关文章:

javascript - 在javascript中覆盖对象值

javascript - Django 和客户端 javascript 模板

node.js - 如何使用dustjs-linkedin 作为客户端模板?

javascript - 我应该将什么连接到 JavaScript 中的子原型(prototype)属性

javascript - 处理 jQuery deferred.done 被调用,即使请求被中止?

javascript - 如何使用 Javascript/Jquery 更改单选按钮的值

couchdb - 可以在 CouchDB "show"函数中使用dust.js 模板吗?

dust.js - 如何检查 Dust.js 模板中的 If not 条件

javascript - 在 dust.js 中,$idx 的初始值不能从零开始吗?

javascript - 客户端模板和搜索引擎引用