Как мне правильно вернуть True/False из помощника шаблона Meteor?

это простой способ сделать это.

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)

Спасибо за помощь советом


person Ethaan    schedule 06.01.2015    source источник


Ответы (2)


Давайте возьмем вашу проблему и создадим универсальный помощник проверки равенства переменных сеанса:

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

С вашим конкретным именем переменной и сравнением вы можете использовать это из любого шаблона с:

{{#if checkSession 'number' 1}}

что преобразуется в если переменная сеанса с пометкой 'number' равна === 1

person Michel Floyd    schedule 10.08.2015
comment
Спасибо @Michel Floy за ответ, старый вопрос, ха-ха, мои первые шаги с Meteor =p - person Ethaan; 11.08.2015
comment
Я знаю! Он просто появился в моем списке связанных вопросов, и я подумал, что он заслуживает актуального и более полезного ответа. - person Michel Floyd; 11.08.2015

person    schedule
comment
Кстати, в вашем помощнике вы можете просто вернуть Session.get('number'); 0 считается ложным - person sdooo; 06.01.2015