2

我的 Meteor 项目车把助手中有:

Handlebars.registerHelper('isEq', function(v1, v2, options){
    if(v1 === v2){
        return options.fn(this);
    }else{
        return options.inverse(this);
    }
});

但是在更新到 0.8 并从车把切换到空格键后,它不再工作了 - 我在其他 stackoverflow 主题中发现现在我应该Handlebars.registerHelper改为UI.registerHelper但它仍然无法正常工作 - 有人知道如何为空格键正确实现这个吗?

4

3 回答 3

6

我使用 aUI.registerHelper添加一个eq可以与 in 结合使用{{#if}}的函数Spacebars

在 JavaScript 代码中,我注册了一个eq包含两个可以调用的变量的函数Spacebars(在 Meteor v0.8 中已替换 Handlebars 的系统)

UI.registerHelper('eq', function(v1, v2, options) {
  if(v1 == v2){
    return true
  } else {
    return false
  }
});

在 HTML 中,我写道:

{{#if eq 1 2}}
They are equal.
{{else}}
They're not equal
{{/if}}
于 2014-08-23T21:48:55.783 回答
3

你想像下面这样使用它吗?

{{#isEq 7 8}}
    They're equal!
{{else}}
    They're not equal :(
{{/isEq}}

从 0.8 开始,块助手被定义为模板。见https://github.com/meteor/meteor/tree/devel/packages/spacebars#custom-block-helpers

而且我认为您需要使用关键字参数 ( {{#isEq v1=7 v2=8}}) 来调用它。虽然,您应该能够定义isEq为助手,然后使用#if块助手,如{{#if isEq 7 8}}.

于 2014-04-26T11:29:52.373 回答
2

这就是我在 Meteor 1.3+ 中实现的方式

// JavaScript
Template.registerHelper('odd', function(conditional, options) {
  return conditional % 2;
});

<!-- HTMLS -->
{{#each myCollection}}
{{#if (odd @index)}}
  even
{{else}}
  odd
{{/if}}
{{/each}}
于 2016-08-26T23:09:27.977 回答