Javascript Dust.js预编译模板的客户端呈现问题
我正在尝试使用预编译的dust模板测试简单的客户端渲染,但当我尝试渲染时,dust抱怨找不到我的模板: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 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) {
...