将表达式传递给车把定制助手

时间:2016-06-15 14:02:21

标签: handlebars.js

车把新手,我已经注册了一个帮手,我无法弄清楚什么似乎是一个简单的任务:如何将表达式传递给车把助手。

让我们说:

Handlebars.registerHelper('or', function (v1, v2) {
  return (v1 || v2) ? options.fn(this) : options.inverse(this);
}

使用时:

{{#conditional @index this.warranty_id !== "DEFAULT_FACTORY" }}

当然它失败了,我无法弄清楚它是如何运作的。我需要的是传递的表达式返回一个布尔值作为帮助器内的v2值。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要编写helper来检查!==,然后将其作为子表达式嵌套在or帮助程序中。

OR帮助

Handlebars.registerHelper('or', function (v1, v2) {
  return (v1 || v2) ? options.fn(this) : options.inverse(this);
}

!==帮助

Handlebars.registerHelper('ne', function (v1, v2) {
  return (v1 !== v2); 
}

然后在你的模板中:

{{#or @index (ne this.warranty_id "DEFAULT_FACTORY")}}