【问题标题】:Handle conditions in Handlebars templateHandlebars 模板中的处理条件
【发布时间】:2015-10-27 08:23:59
【问题描述】:

我正在使用带有 Handlebars 模板的 Ember

如何在 Handlebars 中获得以下支持?

{{#if response.someCount> 0}}

我是否必须在 Controller 中添加一些映射属性来实现这一点?

【问题讨论】:

标签: javascript ember.js handlebars.js


【解决方案1】:

你需要帮助,例如:

Handlebars.registerHelper('compare', function (lvalue, rvalue, options) {
    if (arguments.length < 3)
      throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
    operator = options.hash.operator || "==";
    var operators = {
      '==': function (l, r) {
        return l == r;
      },
      '===': function (l, r) {
        return l === r;
      },
      '!=': function (l, r) {
        return l != r;
      },
      '<': function (l, r) {
        return l < r;
      },
      '>': function (l, r) {
        return l > r;
      },
      '<=': function (l, r) {
        return l <= r;
      },
      '>=': function (l, r) {
        return l >= r;
      },
      'typeof': function (l, r) {
        return typeof l == r;
      }
    }
    if (!operators[operator])
      throw new Error("Handlerbars Helper 'compare' doesn't know the operator " + operator);
    var result = operators[operator](lvalue, rvalue);
    if (result) {
      return options.fn(this);
    } else {
      return options.inverse(this);
    }
  });

然后在你的模板中:

{{#compare response.someCount 0 operator = ">"}}
// Some code...
{{/compare}}

抱歉,我不记得我从哪里下载了该代码,但它在一个项目中完美运行了一年多。

【讨论】:

  • Thx...我只是尝试将其添加为 bower 依赖项...但是出现错误...断言失败:找不到名为“gt”的助手
  • 所以我还必须在某处导入或注册插件吗?
  • 你只需要用ember install ember-truth-helpers安装它就可以使用了。
  • Handlebars.registerHelper 已被弃用,请改用Ember.Helper
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
  • 2013-02-14
  • 1970-01-01
相关资源
最近更新 更多