2

これら 2 つの JavaScript ヘルパーを Handlebars.Net に登録するにはどうすればよいでしょうか?

Moment.js の場合:

Handlebars.registerHelper("formatDate", function (datetime, format) {
    return moment(datetime).format(format);
});

Java スクリプトの計算の場合:

Handlebars.registerHelper("formatPercent", function (val1, limit) {
    return Math.ceil(100 * val1 / limit);
});m
4

2 に答える 2

4

readmeには、ヘルパーの書き方の例が示されています。

Handlebars.RegisterHelper("link_to", (writer, context, parameters) => {
  writer.WriteSafeString("<a href='" + context.url + "'>" + context.text + "</a>");
});

string source = @"Click here: {{link_to}}";

var template = Handlebars.Compile(source);

var data = new {
    url = "https://github.com/rexm/handlebars.net",
    text = "Handlebars.Net"
};

var result = template(data);

/* Would render:
Click here: <a href='https://github.com/rexm/handlebars.net'>Handlebars.Net</a>
*/

最も重要な違いは .NET であり、ヘルパーは値を返しません。むしろ、TextWriterテンプレート出力を生成している への参照が与えられます。したがって、ヘルパーは、そのライターを介してテンプレートに直接必要なものを書き込むことができます。.WriteSafeString()デフォルトのエンコーディングをバイパスするためのヘルパーが含まれています。その際、文字列が実際に安全にエンコードされていないことを確認してください。

于 2016-06-23T14:04:29.647 に答える