【问题标题】:Handlebar helper and .toLocaleString车把助手和 .toLocaleString
【发布时间】:2019-07-18 15:29:05
【问题描述】:

我在 Handlebars 中显示 json 的结果,包括我想用 .toLocaleString() 格式化的数字。 我的 json 样本:

[{"id": "1",
 "results": [{
     "price": 5000
      },
      {
     "price": 6000
  }]
  },
  {"id": "2",
 "results": [{
     "price": 15000
      },
      {
     "price": 16000
      }]
  }]...

然后我在后端用 Express 渲染它,在前面用 Handlebars 渲染它:

{{#each results as |auction|}}                    

     <span class="results__container--price">{{auction.price}} €</span>
{{/each}}

(实际上,它更复杂)

但我不知道如何使用 toLocaleString()。也许我必须遍历“Express中的价格但我不知道该怎么做。是否可以直接与Handlebars一起使用?

【问题讨论】:

  • 你试过{{auction.price.toLocaleString()}}
  • 是的,但它不起作用。车把似乎不是这样工作的
  • 使用辅助函数。

标签: javascript node.js express handlebars.js


【解决方案1】:

使用辅助函数

Handlebars.registerHelper('toLocaleString', function(number) {
  return number.toLocaleString()
})


var source = document.getElementById("temp").innerHTML;
var template = Handlebars.compile(source);
var context = {
  title: "Hello",
  count: 123456789
};
var html = template(context);

document.getElementById("out").innerHTML = html;
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.1.2/handlebars.min.js"></script>

<script id="temp" type="text/x-handlebars-template">
  <div class="test">
    <h1>{{title}}</h1>
    <h2>{{toLocaleString count}}
  </div>
</script>

<div id="out"></div>

【讨论】:

  • 我只是在你回答之前做了这个,这很好!谢谢!
猜你喜欢
  • 2020-04-02
  • 2013-02-05
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多