微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Handlebars.net:在块表达式“货币”关闭之前已到达模板末尾

如何解决Handlebars.net:在块表达式“货币”关闭之前已到达模板末尾

我有一个看起来像这样的模板: (我删除了表格的一些元素只是为了保持代码简短)

              {{#each Tables}}
              <div id='report-container'>
                <table id='report-table'>
                  <tr class='header-row'>
                    <th style='width: 150px; max-width: 150px !important;'>{{this.Title}}</th>
                    <th>Total Company Net Sales $</th>
                    ...
                  </tr>
    
                  {{#each this.Data}}   
                  <tr>
                    <td>{{RowTitle}}</td>
                    <td>{{currency TotalCompanyNetSales}}</td>
                    ...
                  </tr>
                  {{/each}}

                </table>
              </div>
              {{/each}}

有帮手:

        handleBars.RegisterHelper("currency",(writer,context,parameters) =>
        {
            var value = decimal.Parse(parameters[0].ToString());
            value /= 1000;
            var result = value.ToString("0,-28:C2");
            return result;
        });

我不确定对象本身是否相关,但如有必要我可以发布。问题仅在于助手。当我尝试编译模板时,我收到以下错误消息:

“在块表达式‘货币’关闭之前到达模板结尾”

如果我删除货币助手,则该值显示正常。它甚至从不调用货币函数。知道我在这里做错了什么吗?

解决方法

问题与滥用 new (到 Handlebars.Net) return helper 语法有关:您声明的 helper 实际上是一个 block helper 返回值:

handleBars.RegisterHelper("currency",(writer /*this is not `writer` but `options`*/,context,parameters) =>
{
    // your code here
    return result; // change is caused by the `return` statement
});

为了修复帮助程序并仍然使用 return 功能,您应该简单地从 lambda 中删除 options 参数:

handleBars.RegisterHelper("currency",(context,parameters) =>
{
    // your code here
    return result;
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?