1

事前にコンパイルされたダスト テンプレートを使用して単純なクライアント側レンダリングをテストしようとしていますが、レンダリングしようとすると、ダストがテンプレートを見つけられないと文句を言います。

[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 をテストしましたが、すべて正常に動作します。コンパイル済みのテンプレートを使用できるようにするために何が欠けていますか?

4

1 に答える 1

2

コンパイルされたダスト テンプレートをよく見ると、次のコード行があります。

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

このコード行は、キー「basicName.tl」の下にコンパイル済みのテンプレートを に追加しdust.cacheます。

内部では、dust.render与えられたテンプレート名を見つけようとしますdust.cache

ほこりが "basicName" テンプレートを見つけられないため、以下のコードは機能しませんdust.cache:

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

そのように呼び出すとうまくいくはずです:

dust.render("basicName.tl", json_payload, function(err, out) {
...
于 2014-08-05T22:03:41.723 に答える