如果条件助手击中&&包括

时间:2016-08-05 04:20:18

标签: node.js express handlebars.js helpers

我正在使用把手并创建我的视图。我已经从SO帖子中注册了if-else条件的帮助,如下所示:

helpers.ifCond = function (v1, operator, v2, options) {
  var cond = false;
  switch(operator) {
    case '!=':
      cond = (v1 != v2); break;
    case '==':
      cond = (v1 == v2); break;
    case '===':
      cond = (v1 === v2); break;
    case '<':
      cond = (v1 < v2); break;
    case '<=':
      cond = (v1 <= v2); break;
    case '>':
      cond = (v1 > v2); break;
    case '>=':
      cond = (v1 >= v2); break;
    case '&&':
      cond = (v1 && v2); break;
    case '||':
      cond = (v1 || v2); break;
  }

  if(cond) {
    return options.fn(this);
  } else {
    return options.inverse(this);
  }
}

适用于单一条件,如

{{#ifCond this.total "!=" 0}}{{this.total}}{{else}}0{{/ifCond}}

但是当我将&&包括在内时,

{{#ifCond this.total "!=" 0 '&&' this.total "!=" "null"}}
     {{this.total}}
{{else}}
     0
{{/ifCond}}

它引发了一个例外Error: Object && has no method 'fn'

无法理解为什么这会失败。有人可以赐教我吗?

0 个答案:

没有答案