Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Dust.js预编译模板的客户端呈现问题_Javascript_Dust.js_Client Side Templating - Fatal编程技术网

Javascript Dust.js预编译模板的客户端呈现问题

Javascript Dust.js预编译模板的客户端呈现问题,javascript,dust.js,client-side-templating,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=

我正在尝试使用预编译的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>

var json_有效负载={“name”:{
“名字”:“布罗克”,
“姓氏”:“桑普森”
}};
var dustContainerDiv=document.getElementById(“dustContainer”);
render(“basicName”,json_负载,函数(err,out){
dustContainerDiv.innerHTML=out;
});
和我的模板文件(basicName.tl):

{name.firstName}

{name.lastName}

编译为(basicName.js):

(function(){dust.register(“basicName.tl”,body_0);function body_0(chk,ctx){return chk.write(“”).reference(ctx.getPath(false,[“name”,“firstName]”),ctx,“h”).write(“

”)。reference(ctx.getPath(false,[“name”,“lastName]”),ctx,“h”).write(“

”);return body_0;});

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

如果仔细查看已编译的dust模板,有一行代码:

... 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) {
...

愚蠢的想法:如果您执行
dust.render('basicName.tl',…
dust.render("basicName", json_payload, function(err, out) {
...
dust.render("basicName.tl", json_payload, function(err, out) {
...