Javascript 从DOM中删除模板后重新呈现/交换模板

Javascript 从DOM中删除模板后重新呈现/交换模板,javascript,html,dom,meteor,Javascript,Html,Dom,Meteor,目前,我的布局如下: <div id="main"> {{> my_template}} </div> 或者像这样(如果我知道怎么做): 如何使用Template.newForm来隐藏此内容?在这种情况下,我是否仍应使用模板?您可以将所有备选模板放在一起: <div id="main"> {{> my_template}} {{> another_template}} {{> yet_another

目前,我的布局如下:

<div id="main">
    {{> my_template}} 
</div>
或者像这样(如果我知道怎么做):


如何使用
Template.newForm
来隐藏此内容?在这种情况下,我是否仍应使用
模板

您可以将所有备选模板放在一起:

<div id="main">
    {{> my_template}} 
    {{> another_template}}
    {{> yet_another_template}}
</div>

对于要隐藏的模板,我是否只在选择器上执行
display:none
,而对于要显示的模板,我是否只在选择器上执行
display:none
?这样做的惯例是什么?不,如果使用我向您展示的代码,当呈现模板的条件为false时,Meteor将从DOM中删除模板。您不需要自己隐藏或显示DOM元素。它如何确切地知道会话变量何时更改,或者何时执行
if
?是否有隐藏事件被触发/捕获?您应该查看,其中解释了Meteor的基本原理和概念,包括会话如何工作(它是一个反应性变量;当它发生变化时,依赖项会自动由Meteor触发)。此方法不再适用于blaze。使用这个:@Joseph“blaze”是某个特定版本的代码名吗?是:指投票结果较高的答案。它不工作,这是流星的最新版本。
<div id="main">
    {{> another_template}} 
</div>
<template name="newForm">
    <form>
        <input..>
        <textarea..></textarea>
        <!-- more fields.. -->        
    </form> 
</template>
<div id="main">
    {{> my_template}} 
    {{> another_template}}
    {{> yet_another_template}}
</div>
Template.my_template = function() {
  if (Session.equals("template_to_show", "my_template")) {
    return SomeCollection.find();
  }
}
Template.another_template = function() {
  if (Session.equals("template_to_show", "another_template")) {
    return SomeOtherCollection.find();
  }
}
// etc