2016-06-21 11 views
0

このMeteorクライアントコードは、ユーザがclick .list-itemイベントを呼び出すと、liにcssクラスを適用しようとします。問題は、liをスタイルに変換することは、イベントが呼び出された後に生成されるため、その時点で参照がないことです。テンプレートヘルパーとセッションベースのイベント

しかし、私は 'list'セッションから新しいデータをレンダリングし、スタイリングを適用するためにテンプレートが必要です。それはどうやってできますか?おかげ

Template.checks.helpers({ 
    'values': function() { 

    //has the array of items for the template helpers 
    return Session.get('list'); 
    } 
}); 

Template.checks.events({ 
    'click .list-item': function() { 

    //modifies Session 'list' 
    utility.setList(); 

    //Applies the styling to certain list items. 
    utility.checksFiltering($('input.check-filter').val()); 
    } 
}); 
+1

jQueryを使用するのではなく、リスト配列内の関連する項目に 'isChecked'ブール値を追加できます。次に、その値をテンプレートで直接使用できます。 –

+0

@DavidWeldon jQueryは、スタイリング用のクラスを追加する関数の引数として使用されるユーザー入力を取得するためにのみ存在します。 –

答えて

0

checksFilteringすべての後、現在キューに入れられたタスクを実現するには、実行されています

Meteor.defer(function() { 
    utility.checksFiltering($('input.check-filter').val()); 
}); 

これはおそらく動作しますが、セットリストは、()のものを待っていない場合はそのスケジュール新しいトラッカーイベント、例えば、新しいサブスクリプションです。その場合、setList()のいくつかのready()コールバックに依存してcheckFiltering()を呼び出す必要があります。

関連する問題