首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript上注册Handlebars.net助手

如何在JavaScript上注册Handlebars.net助手
EN

Stack Overflow用户
提问于 2016-06-13 23:58:11
回答 2查看 2.5K关注 0票数 2

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

For Moment.js:

代码语言:javascript
复制
Handlebars.registerHelper("formatDate", function (datetime, format) {
    return moment(datetime).format(format);
});

用于java脚本计算的

代码语言:javascript
复制
Handlebars.registerHelper("formatPercent", function (val1, limit) {
    return Math.ceil(100 * val1 / limit);
});m
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-23 14:04:29

自述文件给出了一个如何编写帮助程序的示例:

代码语言:javascript
复制
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()助手可以绕过默认编码。确保当您这样做时,字符串实际上是安全的,不进行编码。

票数 4
EN

Stack Overflow用户

发布于 2016-06-14 04:01:27

找到了。这个示例提供了一些光线https://gist.github.com/rexm/e1a045b9f76a48de642e

代码语言:javascript
复制
    Handlebars.RegisterHelper("formatDate", New HandlebarsHelper(Sub(w, c, p)
                                                                     w.WriteSafeString("moment(" + p(0) + ").format(" + p(1) + ");")
                                                                 End Sub))

    Handlebars.RegisterHelper("formatPercent", New HandlebarsHelper(Sub(w, c, p)
                                                                        If p(1) = 0 Then
                                                                            w.WriteSafeString("0")
                                                                        Else
                                                                            w.WriteSafeString("Math.ceil(" + 100 * p(0) / p(1) + ");")
                                                                        End If
                                                                    End Sub))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37800938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档