我正在尝试使用预编译的灰尘模板测试一个简单的客户端渲染,但是当我尝试渲染时,灰尘会抱怨它无法找到我的模板:
[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,一切正常。为了能够使用预编译的模板,我缺少什么?
答案 0 :(得分:2)
如果仔细查看已编译的灰尘模板,可以使用一行代码:
... dust.register("basicName.tl", ...
这行代码在key&#34; basicName.tl&#34;下添加了编译模板。进入dust.cache
。
引擎盖dust.render
将尝试在dust.cache
以下代码不会起作用,因为灰尘无法找到&#34; basicName&#34; dust.cache
中的模板:
dust.render("basicName", json_payload, function(err, out) {
...
这样打电话应该有效:
dust.render("basicName.tl", json_payload, function(err, out) {
...