如何从流星模板助手中正确返回真/假?

时间:2015-01-06 03:42:13

标签: javascript meteor spacebars meteor-helper

它有一个简单的方法来实现这一目标。

Template.example.helpers({
 showElement : function(){
 var number = Session.get('number')
 if(number === 1){
     console.log(number)
    return true;
   } else {
    console.log(number)
    return false;
   }
  }
})

例如,假设我将此2个事件设置为1和0

//Setting to 1
Template.example.events({
'click #setToOne' : function(e,t){
   Session.set('number',1)
  }
})
 //Setting to 0
Template.example.events({
'click #setToZero' : function(e,t){
   Session.set('number',0)
  }
})

所以这实际上是有效的,因为帮助者中的console.log显示0 and 1

但是如何在helper上调用template

已经尝试过这个

<template name="example">
{{#if showElement.true}}
 <h1>show this header if Truee</h1>
{{else}}
<h1>show this header if False</h1>
{{/if}}
</template>

那么这是最佳做法?或者我应该使用UI.registerHelper?(我真的不知道如何使用UI.registerHelpers)

感谢您提供的建议帮助

2 个答案:

答案 0 :(得分:2)

<template name="example">
{{#if showElement}}
 <h1>show this header if Truee</h1>
{{else}}
<h1>show this header if False</h1>
{{/if}}
</template>

答案 1 :(得分:2)

让我们解决您的问题并制作一个通用会话变量相等检查器助手:

Template.registerHelper('checkSession',function(sessionVarName,compareTo){
  return ( Session.get(sessionVarName) === compareTo );
});

使用您的特定变量名称和比较,您可以在任何模板中使用此项:

{{#if checkSession 'number' 1}}

如果标记为“number”的会话变量为=== 1

,则转换为