1

次のような翡翠のテンプレートをコンパイルしました。

jade --client --no-debug ...

次に、クライアント側にインクルードされjade.js、コンパイルされたテンプレート ファイルが含まれます。しかし jade.escape は未定義です。コンパイルされたテンプレート関数が次のようになっていることに気付きました。

function anonymous(locals, attrs, escape, rethrow, merge) {
    attrs = attrs || jade.attrs; escape = escape || jade.escape; rethrow = rethrow || jade.rethrow; merge = merge || jade.merge;
    var buf = [];
    with (locals || {}) {
    var interp;
    buf.push('<h1>');
    var __val__ = title
    buf.push(escape(null == __val__ ? "" : __val__));
    buf.push('</h1>');
    }
    return buf.join("");
}

エスケープがパラメーターとして渡される方法に注意してください。では、予想される使用法はどのようなものでしょうか?

非常に単純なテンプレートがあるとします。

h1= title

次に、次のように使用します。

html = anonymous({title: "Hello World!"})

しかし、それはエスケープが未定義になることを意味しますか? jade.escape も未定義であることに気付きましたが、含めましたjade.js

4

1 に答える 1