如何在Spacebars {{if}}中获取HTML以对Session变量进行反应性更改?

时间:2015-12-17 19:25:33

标签: javascript meteor spacebars

在我的Meteor项目中,我希望根据>>> f = h5py.File('path/to/file/myfile.hdf5','w') 变量显示模板部分;但是,Session中的HTML没有被反应出现 如何让{{#if}}对会话变量进行反应性更改?

HTML:

{{#if}}{{/if}}

JavaScript的:

<head>
  <title>testApp</title>
</head>
<body>
  {{> testTemplate}}
</body>

<template name="testTemplate">
  {{#if isDisplayed}}
    <div>It's working!</div>
  {{/if}}
  <button id="testButton">Toggle Display</button>
</template>

2 个答案:

答案 0 :(得分:1)

将助手指定为值:

isDisplayed : Session.get('displayVar')

与做:

相同
isDisplayed: false // or true, or whatever 'displayVar' is when run

要解决此问题,只需使用一个函数(此处为ES6 Arrow function,因为Meteor使用Babel):

isDisplayed: () => Session.get('displayVar')

使用函数可确保生成Tracker计算。

答案 1 :(得分:0)

您的帮助者需要返回来自匿名函数的值:

Template.testTemplate.helpers({
  isDisplayed: function(){
    return Session.get("displayVar");
  }
});