在mustache.js模板中进行简单的计算

Ank*_*kur 6 javascript template-engine mustache

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

我想要多个ratio固定数量的值,例如240

我的标签看起来像这样:

<div><img src="https://s3.amazonaws.com/com.myapp.demo/{{url}}" class="item" style="height:{{ratio * 240}}"></div>
Run Code Online (Sandbox Code Playgroud)

由于url值正确显示,我觉得必须是导致我麻烦的计算.

JVi*_*ela 9

选项1

您可以使用以下功能执行此操作:

模板:

<div>
  <img src="https://s3.amazonaws.com/com.myapp.demo/{{url}}" 
       class="item" style="height:{{#ratio}} {{x240Times}} {{/ratio}}">
</div>
Run Code Online (Sandbox Code Playgroud)

码:

Mustache.render(template,{
 ratio: 2,
 x240Times: function() {
    return this.ratio * 240;
  }
});
Run Code Online (Sandbox Code Playgroud)

选项2

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

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

Mustache.Formatters = {
    "multiply": function (value, multiplier) {
        return value * multiplier;
    }
}
Run Code Online (Sandbox Code Playgroud)

在模板中使用它:

<div>
  <img src="https://s3.amazonaws.com/com.myapp.demo/{{url}}" 
       class="item" style="height:{{ratio | multiply:240}}">
</div>
Run Code Online (Sandbox Code Playgroud)