如何在Meteor JS中将所有ReactiveVars重置为false

时间:2015-12-16 20:47:38

标签: javascript meteor

我有一个模板,其中食谱通过{{#each recipes}}呈现,我使用ReactiveVar将每个食谱的编辑形式从hide切换到show。一切正常,但我希望当我在一个食谱中按下编辑按钮时,之前打开的所有其他食谱表格将设置为隐藏

move "%%i" "C:\users\zack.vigrass\desktop\"

2 个答案:

答案 0 :(得分:0)

我认为你需要一种不同的方法

一个Session变量,它具有当前编辑配方的Id,然后是模板上的帮助器,以查看当前配方是否是正在编辑的配方

向配方添加属性,无论其是否被编辑,然后在更改集合时更新集合

具有反应式var的常见对象,与Session变量的技术大致相同。如果您有父模板,那么它可以存在(这可能是最好的选项)

答案 1 :(得分:0)

为了实现此功能,您应该考虑模板的通信方式。一个模板不应该能够为其兄弟姐妹设置状态,这意味着你认为它错了。

您应该将该状态存储在全局某处,以便所有模板都可以查看并对其做出反应。该选项意味着使用Session(如Keith所提到的)或路由参数(在我看来更好的选择)。

另一种选择是使用父项来存储该数据,使用事件在父项和子项之间进行通信。子模板可以向父母发送和发送事件,并将其他事件发送给其他孩子。