如何让空格键{{if}}中的HTML使用Session变量进行反应性更改
How do I get HTML inside Spacebars {{if}} to change reactively with a Session variable?
在我的Meteor项目中,我希望根据Session
变量显示一个模板部分;然而,{{#if}}
内部的HTML没有反应性地出现
如何让{{#if}}{{/if}}
使用会话变量进行反应性更改?
HTML:
<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>
JavaScript:
Session.setDefault("displayVar", false);
Template.testTemplate.helpers({
isDisplayed: Session.get("displayVar")
});
Template.testTemplate.events({
"click #testButton": function () {
if (Session.get("displayVar")) {
Session.set("displayVar", false);
} else {
Session.set("displayVar", true);
};
}
});
将助手指定为值:
isDisplayed : Session.get('displayVar')
与做相同:
isDisplayed: false // or true, or whatever 'displayVar' is when run
要解决这个问题,只需使用一个函数(这里是ES6 Arrow函数,因为Meteor使用了Babel):
isDisplayed: () => Session.get('displayVar')
使用函数可以确保生成Tracker
计算。
您的助手需要从匿名函数返回值:
Template.testTemplate.helpers({
isDisplayed: function(){
return Session.get("displayVar");
}
});
相关文章:
- Javascript 变量使用 jquery 查找变量
- 如何在javascript中创建全局变量(使用webpack)
- JavaScript 变量使用外部函数
- 组合多个变量-使用POST
- 对变量使用math.max并显示相应的变量
- 定义变量是否比在 JS 中覆盖变量使用更多的资源
- 脚本标记中的全局变量使用's源属性
- 如何使用java脚本变量使用Django反向URL
- 对API字符串中的JQuery变量使用split()
- 在递归循环javascript之后,为JSON键变量使用自定义HTML元素
- 传递变量:使用模块的最佳实践
- 谷歌分析自定义变量使用情况
- 如何使用 javascript 变量使用 jQuery 隐藏元素
- 创建一个数组,而不是一个从 dom 获取的值变量 使用 jQuery
- 对函数表达式和我分配函数表达式的变量使用相同的标识符是否存在任何问题
- 以编程方式声明基于索引数组的变量(使用谷歌网站列表页面)
- 如何在链接上使用 php 变量使用 onClick 事件
- 当变量使用 Angular 更改时,如何使某些内容闪烁
- 如何在ajax append函数中传递一个变量(使用razor将其传递到html元素中)
- 在JQuery中为这些变量使用集合值,而不是随机值