我正在运行 Meteor 0.5.7,并尝试在用户单击提交时显示引导警报消息。
客户端.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();};
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>
当用户最初点击提交并且不满足条件时,他们必须再次点击提交才能获得警告消息。所有其他时间逻辑都有效。
我看过这个 - Meteor 的反应在幕后是如何工作的?,并重新阅读有关响应式编程部分的 Meteor 文档,但仍有一些问题。
客户端中的 else 语句不应该默认为成功 == false 的会话变量,并且车把模板会立即在 {{else}} 块中拾取它吗?有点糊涂。谢谢,