1

ここでは反応型のすべての質問と、 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

はこれにあきらめました。問題の解決策は実際には見つかりませんでした。

答えて

0

使用template.reason.set( 'パスワードが短すぎます'); Template.instance()の代わりにreason.set( 'パスワードが短すぎます');

+0

いいえ、ツールチップまたは裸の{{理由}}は更新されません。 –

+0

ifブロックに到達していない可能性があります。console.log(contents.length) –

関連する問題