我在使用流星中的保留方法时遇到问题。它似乎没有做我想做的事。
基本上,我有三个嵌套模板,它们在渲染时在关闭状态下看起来像这样:
<div class="Dropdown"><!--From Template1-->
<div class="Group"><!--From Template2-->
<div class="SubGroup"><!--From Template3-->
I'm the subgroup's content!
</div>
</div>
</div>
要查看 .SubGroup 节点中的内容,所有模板包装器都需要带有 .Open 类名。这是在点击事件上完成的。这是打开状态下的样子:
<div class="Dropdown Open"><!--From Template1-->
<div class="Group Open"><!--From Template2-->
<div class="SubGroup Open"><!--From Template3-->
I'm the subgroup's content!
</div>
</div>
</div>
问题是,当事件触发并从 .SubGroup 的内容中更改数据库时,看起来Template2 和 Template3 都被重新渲染并丢失了它们以编程方式应用的 .Open 类。
我已经尝试Template.Template2.preserve(['.Group']);
在每个模板上使用我认为可能会影响它的几乎每个选择器。我也尝试过 {{#constant}} 和 {{#isolated}} 助手,但还没有得到预期的结果。
防止 Meteor 抹去我的班级名称的正确方法是什么?