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

时间:2013-01-02 03:33:27

标签: javascript html dom meteor

目前我有以下布局:

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

稍后,我有一个选择器$("#main"),我使用html(..)更改内容以显示集合中的记录。

所以现在也许它看起来像这样:

<div id="main">
    <h1>A title...</h1>
    <p>some text</p>
</div>   

或者也许是这样(如果我知道的话):

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

这样做的正确方法是什么,以便我可以为其他模板重新呈现/换出my_template?我必须使用Meteor.render吗?我怎么能这样做?

修改
我需要更多的澄清,使用只有HTML和没有反应模板变量的模板。如何使用Session启用/禁用?

<template name="newForm">
    <form>
        <input..>
        <textarea..></textarea>
        <!-- more fields.. -->        
    </form> 
</template>

我如何使用Template.newForm隐藏此内容?在这种情况下我是否还应该使用Template

1 个答案:

答案 0 :(得分:2)

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

<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