如何在流星模板上使用条件?

时间:2016-05-19 18:58:07

标签: meteor

我想在流星模板上使用条件,如: 例如,我有一个字段,名称是类型,类型可以得到两个值1和2

我尝试如下,但它不起作用。

    {{#if type 1}}
    <td tableHeadData='day'> {{day}}</td>
    {{else type 2}}
    <td tableHeadData='month'> {{month}}</td>
    {{/if}}

3 个答案:

答案 0 :(得分:1)

您可以为equals辅助工具制作可重复使用

Template.registerHelper('equals', function (a, b) {
  return a == b; // maybe triple equals of types need to match
});

然后在这样的模板中使用:

{{#if equals value1 value2}}
  Your values are equal
{{/if}}

答案 1 :(得分:1)

meteor中有一个名为raix:handlebar-helpers的包有一些简单的助手。

因此,如果你想使用相等的话,你只需要写{{#if $eq a b}}

{{#if $eq type 1}}
    <td tableHeadData='day'> {{day}}</td>
  {{else}} 
      {{#if $eq type 2}}
         <td tableHeadData='month'> {{month}}</td>
      {{/if}}
{{/if}}

您也可以在本地和全球范围内编写助手。

对于本地,您已在相应的js文件助手中写入。

Template.myTemplate.helpers({
    isEqual : function (value1, value2){
       return value1 === value2;
    }
})

对于全局,您必须使用Template.registerHelper注册帮助程序。

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

在这两种类型的助手中,你的html代码都会像

{{#if isEqual type 1}}
    <td tableHeadData='day'> {{day}}</td>
  {{else}} 
      {{#if isEqual type 2}}
         <td tableHeadData='month'> {{month}}</td>
      {{/if}}
{{/if}}

@note:流星空格键现在不支持任何其他条件。

答案 2 :(得分:0)

答案是你不能。 if的参数必须是一个返回布尔值的模板助手函数。所以你必须编写一个辅助函数来进行测试。

Template.xxx.helpers({
  typeIs1() { return this.type === 1 }
  typeIs2() { return this.type === 2 }
})