1

Mustache、Hogan、Handlebars などのライブラリのデフォルト出力を変更する方法はありますか?

たとえば、私のコンテキストは次のとおりです。

var context = {
  primitive: 1,
  array: [1, 2, 3],
  object: new Object()
}

そして、それがコンパイル時の結果になりたい方法です:

<div>
  Primitive: {{primitive}}
  Array: {{array}} should output <Array#id> instead of "1,2,3"
  Object: {{object}} should output <Object#id> instead of "[Object object]"
</div>

これらのプロパティの toString メソッドをオーバーライドできることはわかっていますが、補間が行われる前にコールバックのような方法は他にありますか?

4

2 に答える 2

0

ホーガンでは、本当にやりたいことに応じて、可能性があります。 https://github.com/twitter/hogan.js#features

var text = "{{^check}}{{#i18n}}No{{/i18n}}{{/check}}";
text +=  "{{#check}}{{#i18n}}Yes{{/i18n}}{{/check}}";
var tree = Hogan.parse(Hogan.scan(text));

// outputs "# check"
console.log(tree[0].tag + " " + tree[0].name);

// outputs "Yes"
console.log(tree[1].nodes[0].nodes[0]);

タグが解析され、適切と思われるようにツリーを操作し、完了したらコンパイルできます

于 2013-11-20T22:06:50.303 に答える
0

Handlebars.Utils.escapeExpressionテンプレート内でこれを実現するためにオーバーライドできることがわかりました。

于 2013-12-12T05:25:19.650 に答える