我需要在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);
});