在 Handlebars 中构建嵌套数学函数

问题描述 投票:0回答:1

我正在尝试在 Handlebars 中设置一个值,该值应该作为两个单独的除法数学语句相加在一起,然后添加到另一个值。

它的整体伪代码是这样的:

result + (var1 divided by 10) + (var2 divided by 100)

我对 Handlebars 代码的尝试是这样的:

{{plus result (divide var1 10) plus (divide var2 100)}}

如何调整这些语句的结构以使这些嵌套数学函数发挥作用?它可以将 3 个语句(而不是 2 个

plus
助手构建在一起)一起使用吗?

handlebars.js handlebarshelper
1个回答
0
投票

首先,不清楚

result
是什么。

其次,这种逻辑确实不属于模板。在将数据发送到模板函数之前,您最好先进行这些数学运算。

但是,可以以嵌套方式调用助手,但您需要将每个助手调用放在自己的一组括号中。

结果将是:

{{plus result (plus (divide var1 10) (divide var2 100))}}

const template = Handlebars.compile('{{plus result (plus (divide var1 10) (divide var2 100))}}');

Handlebars.registerHelper('divide', function (a, b) {
  return a / b;
});

Handlebars.registerHelper('plus', function (a, b) {
  return a + b;
});

const output = template({
  result: 5,
  var1: 100,
  var2: 2000
});

document.body.innerHTML = output;
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>

© www.soinside.com 2019 - 2024. All rights reserved.