ここでは反応型のすべての質問と、 this meteorchef articleを読んだことがありますが、まだ私のアプリに問題があります。一貫してレンダリングされていない流行反応
foo.jsは:
Template.pwdStrength.onCreated(function() {
this.reason = new ReactiveVar('Empty password');
});
Template.pwdStrength.helpers({
reason: function() {
return Template.instance().reason.get();
},
});
Template.pwdStrength.events({
'input #at-field-password': function(event, template) {
const contents = event.currentTarget.value;
// call strength computation here...
if (contents.length < 8) {
Template.instance().reason.set('Password is too short');
} else {
Template.instance().reason.set("We don't like that password");
}
}
});
がfoo.htmlという:
<template name='pwdStrength1'>
{{> atTextInput}}
<span data-toggle='tooltip' data-placement='top' title="{{reason}}">
<ul id="strength" check-strength="pw" style="{display: inline;}">
<li class="point" style="{{style 1}}"></li>
<li class="point" style="{{style 2}}"></li>
<li class="point" style="{{style 3}}"></li>
<li class="point" style="{{style 4}}"></li>
<li class="point" style="{{style 5}}"></li>
</ul>
</span>
</template>
目標は、入力イベントによって設定された理由でパスワードの強度メーターオーバーツールチップを表示することです。パスワードフィールドにテキストを入力した後でも、ツールチップは「空のパスワード」として表示されます。しかし、テンプレートの一番上に{{reason}}
という行だけを追加すると、その理由がページに表示されます。また、ツールチップが正常に機能し、更新の理由が示されます。 CSSを使用して{{reason}}
を隠すと、ツールチップが機能しなくなります。テンプレートヘルパーは、タグ内にレンダリングする前にレンダリングする必要があります。私は間違って何をしていますか?
最新の流行、twbs:ブートストラップ、アカウント:テンプレート。 UIが直感的ではなかったとツールチップがちょうど方法で得たので
EDIT
はこれにあきらめました。問題の解決策は実際には見つかりませんでした。
いいえ、ツールチップまたは裸の{{理由}}は更新されません。 –
ifブロックに到達していない可能性があります。console.log(contents.length) –