错误笔记:express中handlebars语法注意事项

生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最强壮的地方。——海明威《老人与海》

知道错误在哪,才能解决问题。
解决问题的同时能获得更多的知识。

1.添加“\”进行转义语法

错误代码

{{#section "head"}}
<script id ="menubutton" type="text/x-handlebars-template">
      {{#each this}}
        <li>nihao{{name}}</li>
      {{/each}}
</script>
{{/section}}
#
正确代码
{{#section "head"}}
<script id ="menubutton" type="text/x-handlebars-template">
      \{{#each this}}
        <li>nihao\{{name}}</li>
      \{{/each}}
</script>
{{/section}}
#

在html中你可以这样写,在express中的handlebars文件中,你必须添加“ \”,我们必须转义至少一个大括号,否则,服务器端视图会尝试对其进行替换。
如果不进行转义的话,在自定义helps时,{{function num}},会导致网页崩溃,输出不出来数据。

2. Uncaught Error: You must pass a string or Handlebars AST to Handlebars.compile. You passed undefined

错误代码

{{#section "head"}}

<script type="text/javascript">

    var context = {num:123456789}
    Handlebars.registerHelper('formatnumber',function(num,options){
        num = num + '';
        return num.replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g,',$1');
    })

     var source = $("#ceshi").html();
     var ceshiTemplate = Handlebars.compile(source);
     $(".ceshi-wrap").html(ceshiTemplate(context));


</script>

{{/section}}


<div class="ceshi-wrap">这个
    <script id="ceshi" type="text/x-handlebars-template">
          \{{formatnumber num}}
    </script>

</div>
#

正确代码

{{#section "head"}}

<script type="text/javascript">

    var context = {num:123456789}
    Handlebars.registerHelper('formatnumber',function(num,options){
        num = num + '';
        return num.replace(/(?=(?!^)(?:\d{3})+(?:\.|$))(\d{3}(\.\d+$)?)/g,',$1');
    })
    $(window).load(function(){
     var source = $("#ceshi").html();
     var ceshiTemplate = Handlebars.compile(source);
     $(".ceshi-wrap").html(ceshiTemplate(context));
    })

</script>

{{/section}}


<div class="ceshi-wrap">这个
    <script id="ceshi" type="text/x-handlebars-template">
          \{{formatnumber num}}
    </script>

</div>
#

原因是并没有给Handlebars.compile(传入数据),然而打眼一看传入了啊。这是怎么回事呢,低级错误,是因为是用的$语法,却没有写在$(function({}))等下,所以是没有得到数据,依次可以查看你的是哪里出错了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明 YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明YOLO高分设计资源源码,详情请查看资源内容使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值