2016-08-02 10 views
0

このMeteorクライアントコードでは、テンプレートヘルパーを使用して表示されるドキュメントと、mongodbセレクターを変更するために使用する必要があるクラス "filterBy"を持つテキスト入力を返します。 keyUpイベントでコレクション入力セレクターfromテキスト入力

、それは私がSession.set(「myChar」、jQueryの-getを入力)を使用して、MongoDBのセレクタにそれを適用する必要があり、文字をカウントし、return myCol.find({myField: myCharacters})

などの入力した文字列を適用する必要があり、それとも良い方法がありますか?おかげ

Template.abc.helpers({ 
    docs:() => { 
    return myCol.find({}); 
    } 
}); 
<input class="filterBy" type="text"> 

<template name="abc"> 
    <ul> 
    {{#each docs}} 
    <li class={{this.class}} data-id={{this.a}}>{{this.b}} {{this.d}}</li> 
    {{/each}} 
    </ul> 
</template> 

答えて

0

代わりにセッション変数を使用しての、あなたはReactiveVarに値を格納することができ:ヘルパーで

Template.abc.onCreated(function() { 
    this.myChar = new ReactiveVar; 
}); 

Template.abc.events({ 
    'keyup .filterBy'(event, instance) { 
    // Get number of characters… 
    instance.myChar.set(numberOfCharacters); 
    } 
}); 

を、ReactiveVarの値を取得します:

Template.abc.helpers({ 
    docs() { 
    const myChar = Template.instance().myChar.get(); 
    return myCol.find… 
    } 
}); 

このようにして、国家、つまり文字数をグローバルにはなくローカルに保存しますテンプレートレベル(テンプレートをより再利用可能にします)。

も参照してください:

関連する問題