我需要在Meteor中重新加载站点吗?

我需要在Meteor中重新加载站点吗?,meteor,Meteor,我有这个模板: <template name="body"> {{#if key}} {{> mite}} {{else}} {{> settings}} {{/if}} </template> {{{#if key}} {{>mite} {{else} {{>设置} {{/if} 及 设置 拯救 …这里有钥匙 当我显示设置窗体时,用户可以在其中设置显示“mite”模板所需的键。现在,当我“提交”表单时,页面将被重新加

我有这个模板:

<template name="body">
  {{#if key}}
    {{> mite}}
  {{else}}
    {{> settings}}
  {{/if}}
</template>

{{{#if key}}
{{>mite}
{{else}
{{>设置}
{{/if}


设置
拯救
…这里有钥匙

当我显示设置窗体时,用户可以在其中设置显示“mite”模板所需的键。现在,当我“提交”表单时,页面将被重新加载,并显示“mite”模板

在mite模板上,我希望有“不是你的钥匙”链接,或者删除钥匙然后再次显示设置表单的链接。它与重新加载一起工作。。。但是我不能在没有流星的重装的情况下完成吗?如何在主体模板中使用#if“调用”模板零件


--Renato

您需要将事件处理程序绑定到表单,并使用
preventDefault()
停止提交。e、 g

客户端js

Template.settings.events({
    'submit':function(event,template) {
        event.preventDefault();
        var apiKey = template.find('input[name=apiKey]').value;

        //..rest of logic to handle submit event
        Session.set("key",true);
    }
});
然后,您可以在会话中使用模板帮助程序。get(“showthistemplate”)来决定是否显示另一个模板:(这是一个通用帮助程序,因为您将其放入其中而不是模板:

Handlebars.registerHelper('key',function() {
    return Session.set("key",true);
});

但该网站仍然需要重新加载,对吗?我试图做的是,一旦设置了密钥,模板“mite”就会呈现出来……不,模板系统会对meteor进行“反应”。所以只要
Session.set('key',true)
已设置或更改Meteor将自动使用更新修补DOM,而无需重新加载。这真的很酷!啊!会话…就是这样。
Template.body.key=->Session.get'key'
有效,但
Template.body.key=->localStorage['key']
没有。谢谢!
Handlebars.registerHelper('key',function() {
    return Session.set("key",true);
});