Meteor 0.5.7 を実行していて、ユーザーが送信をクリックしたときにブートストラップ アラート メッセージを表示しようとしています。
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();};
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ステートメントはデフォルトでsuccess == falseのセッション変数になり、ハンドルバーテンプレートは{{else}}ブロックですぐにそれを取得するべきではありませんか? 少し混乱しています。ありがとう、