【问题标题】:Do a simple calculation in a mustache.js template在 mustache.js 模板中做一个简单的计算
【发布时间】:2012-10-27 04:43:30
【问题描述】:

是否可以在 mustache.js 模板中进行计算?

我想将一个名为 ratio 的值乘以固定数量,例如240

我的标签如下所示:

<div><img src="https://s3.amazonaws.com/com.myapp.demo/{{url}}" class="item" style="height:{{ratio * 240}}"></div>

既然url的值显示正确,我觉得一定是计算给我带来了麻烦。

【问题讨论】:

  • 为什么不在该值传递给模板之前进行计算?你能告诉我们你用来渲染模板的代码吗?
  • 你确定不是你忘记了“px”
  • 是的,我可以在将其传递给模板之前进行计算,但是要做的工作量要多得多,所以我想避免它。这就是我现在做的方式.
  • 您可能错过了问题以“是否可能...”开头的那一点。这是可以理解的,因为我只在前三个词中提到。

标签: javascript template-engine mustache


【解决方案1】:

选项 1

您可以使用函数来做到这一点:

模板:

<div>
  <img src="https://s3.amazonaws.com/com.myapp.demo/{{url}}" 
       class="item" style="height:{{#ratio}} {{x240Times}} {{/ratio}}">
</div>

代码:

Mustache.render(template,{
 ratio: 2,
 x240Times: function() {
    return this.ratio * 240;
  }
});

选项 2

您也可以使用我的扩展 mustache-wax 在模板中使用格式化程序,例如:

定义一个接受一个参数的“乘法”格式化程序:

Mustache.Formatters = {
    "multiply": function (value, multiplier) {
        return value * multiplier;
    }
}

在你的模板中使用它:

<div>
  <img src="https://s3.amazonaws.com/com.myapp.demo/{{url}}" 
       class="item" style="height:{{ratio | multiply:240}}">
</div>

【讨论】:

    猜你喜欢
    • 2020-12-18
    • 2014-08-02
    • 1970-01-01
    • 2013-07-28
    • 2020-06-06
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多