Meteor 如何使会话变量成为被动的?
我正在运行Meteor 0.5.7,并试图在用户单击submit时显示引导警报消息 client.jsMeteor 如何使会话变量成为被动的?,meteor,Meteor,我正在运行Meteor 0.5.7,并试图在用户单击submit时显示引导警报消息 client.js Handlebars.registerHelper('isSuccessful',function(input){ return Session.get("success"); }); Template.form.events({ 'click .submit' : function (event, template) { if (condition) {
Handlebars.registerHelper('isSuccessful',function(input){
return Session.get("success");
});
Template.form.events({
'click .submit' : function (event, template) {
if (condition) {
Session.set("success", true);
// hide warning, show success
$('#valid_form').show();
$('#invalid_form').hide();
} else {
Session.set("success", false);
// hide success, show warning
$('#valid_form').hide();
$('#invalid_form').show();
}
}
});
Template.form.rendered = function () { $('.alert').hide();};
Template.form.rendered = function() {
// hide all alerts when elements are rendered
$('.alert').alert('hide');
}
Template.form.events({
'click .submit' : function (event, template) {
if (condition) {
// hide warning, show success
$('#valid_form').alert();
$('#invalid_form').alert('hide');
} else {
// hide success, show warning
$('#valid_form').alert('hide');
$('#invalid_form').alert();
}
}
});
page.html
<body>
{{> page}}
</body>
<template name='page'>
{{> form}}
</template>
<template name='form'>
<!-- Show Alerts Above Form -->
<div class="alert alert-success" id="valid_form">..</div>
<div class="alert" id="invalid_form">..</div>
{{#if isSuccessful}}
<div>SHOW CONFIRMATION PAGE</div>
{{else}}
<div>SHOW INPUT FIELDS</div>
{{/if}}
<div>
</template>
{{>page}
{{>形式}
..
..
{{#如果成功}
显示确认页面
{{else}
显示输入字段
{{/if}
当用户最初单击submit而条件不满足时,他们必须再次单击submit以获取警告消息。所有其他时候,逻辑都是有效的
我已经看过了-,并且重新阅读了Meteor文档中关于反应式编程部分的内容,但是仍然有一些地方不对劲
客户端中的else语句不应该默认为success==false的会话变量,并且handlebar模板应该立即在{else}块中拾取它吗?有点困惑。谢谢,如果您的目的是隐藏/显示某个条件下的相关警报,您只需执行以下操作即可: client.js
Handlebars.registerHelper('isSuccessful',function(input){
return Session.get("success");
});
Template.form.events({
'click .submit' : function (event, template) {
if (condition) {
Session.set("success", true);
// hide warning, show success
$('#valid_form').show();
$('#invalid_form').hide();
} else {
Session.set("success", false);
// hide success, show warning
$('#valid_form').hide();
$('#invalid_form').show();
}
}
});
Template.form.rendered = function () { $('.alert').hide();};
Template.form.rendered = function() {
// hide all alerts when elements are rendered
$('.alert').alert('hide');
}
Template.form.events({
'click .submit' : function (event, template) {
if (condition) {
// hide warning, show success
$('#valid_form').alert();
$('#invalid_form').alert('hide');
} else {
// hide success, show warning
$('#valid_form').alert('hide');
$('#invalid_form').alert();
}
}
});
page.html:
<body>
{{> page}}
</body>
<template name='page'>
{{> form}}
</template>
<template name='form'>
<div class="alert alert-success" id="valid_form">..</div>
<div class="alert" id="invalid_form">..</div>
</template>
{{>page}
{{>形式}
..
..
我的问题的答案似乎是将return Session.get(“success”)更改为return Session.equals(“success”,true)在handlebar注册助手中实现了这一技巧。从我所读到的,它的“无效”?-我不确定atm机是什么意思,但这是一个开始 你的建议会一直显示其中一个警报,而我只希望它在需要时显示。为了澄清这一点,只有当表单字段有效或无效时,警报才会弹出,并且示例中没有显示表单字段只是为了保持简短。希望这有意义?$('.alert')。alert('hide')
在呈现模板时隐藏所有警报Prashant,感谢您的努力,我更新了模板以反映我在本地使用的内容。如您所见,我希望警报显示在其他html元素之外,这些元素可能具有警报状态,也可能没有警报状态。