更流畅的Meteor 0.9.3模板助手

时间:2014-10-01 19:29:45

标签: meteor meteor-blaze spacebars

我使用以下网址中的信息为Meteor 0.9.3创建了一个自定义块帮助器: https://github.com/meteor/meteor/wiki/Using-Blaze#new-pattern-for-defining-custom-block-helpers

它可以在Spacebars模板中使用,如下所示:

{{#ifEqual value1="stringOrNumber_1" value2="stringOrNumber_2"}}
  <h1>The values ARE equal!</h1>
{{else}}
  <h1>The values are NOT equal!</h1>
{{/ifEqual}}

以下是代码:

<template name="ifEqual">
  {{#if isEqual value1 value2}}
    {{> UI.contentBlock}}
  {{else}}
    {{> UI.elseBlock}}
  {{/if}}
</template>

Template.ifEqual.isEqual = function (value1, value2) {
  return value1 === value2;
};

我的问题是:

有没有办法让这个不那么笨重?

我更喜欢可以在模板中使用的代码,如下所示:

{{#ifEqual "stringOrNumber_1" "stringOrNumber_2"}}
...

1 个答案:

答案 0 :(得分:1)

我会注册一个全球equals帮助者:

Template.registerHelper('equals', function(value1, value2){
    return value1 === value2
})

然后像这样使用它:

{{#if equals "abc" "abc"}}
    <p>They're equal :)</p>
{{else}}
    <p>They're not equal :(</p>
{{/if}}

尽管如此,您可能有兴趣使用underscore-helper软件包,因此您不必自己定义此(和类似)帮助程序。