如何使用Handlebars.net注册JavaScript帮助程序

时间:2016-06-13 23:58:12

标签: javascript helpers handlebars.net

我们如何在Handlebars.Net中注册这两个JavaScript助手?

对于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

2 个答案:

答案 0 :(得分:3)

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()个助手以绕过默认编码。 确保您的字符串在执行此操作时实际上不会编码。

答案 1 :(得分:1)

找到它。这个例子揭示了一些亮点https://gist.github.com/rexm/e1a045b9f76a48de642e

BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inSampleSize = 1;
Bitmap bm = BitmapFactory.decodeResource(getResources(), resId, options);
mImageView.setImageBitmap(bm);