私は流星を初めて使用し、tmeasday:publish-counts パッケージを使用していくつかのカウントを公開しようとしました。カウントを読み取るだけでは反応性は問題なく動作しますが、Template.helper 関数でカウントを使用すると、カウントが変化しても関数は更新されません。
これが私が持っているものです:
サーバー上:
Meteor.publish('counters', function() { Counts.publish(this, 'searches-thisWeek', UserActions.find({ $and: [ { action: SEARCHES_REGEX }, { date : { $gte : moment().startOf('week').toDate()} }, { date : { $lt : moment().toDate()} } ] })); Counts.publish(this, 'searches-lastWeek', UserActions.find({ $and: [ { action: SEARCHES_REGEX }, { date : { $gte : moment().subtract(1, 'week').startOf('week').toDate()} }, { date : { $lt : moment().subtract(1, 'week').endOf('week').toDate()} } ] })); });
クライアント上:
Template.dashboard.helpers({ nbSearchesThisWeek : function() { var variation = Counts.get('searches-thisWeek') - Counts.get('searches-lastWeek'); return { currentValue : Counts.get('searches-thisWeek'), orientation : { sign: (variation > 0) ? '+' : '', class: (variation > 0) ? 'up' : 'down' }, variation : variation }; } });
私のテンプレートには次のものがあります:
<td>{{getPublishedCount 'searches'}}</td> <td>{{#with nbSearchesThisWeek}}{{>variations }}{{/with}}</td>
次のサブテンプレートを使用します。
<template name="variations"> <div class="variation col-lg-12"> <span class="variationValue {{orientation.class}} col-lg-6">{{orientation.sign}}{{variation}}</span> <span class="currentValue col-lg-6">{{currentValue}}</span> </div> </template>
{{getPublishedCount 'searches'}} は正常に更新されます。「検索」カウンターを取得し、カウンターが変更されるたびに更新します。
ただし、サブテンプレートのカウンタは起動時に正常に実行されますが、依存するカウンタが変更されても更新されません。
私の質問は、どのように、どこで nbSearchesThisWeek ヘルパーを依存カウンター値の変更に反応させるのですか? Deps、Tracking、および ReactiveVars に関するドキュメントを読んだとき、私は非常に混乱しています...ユースケースを機能させるためにこれらのものをどこで使用する必要があるかを本当に理解していませんでした...
ご協力いただきありがとうございます。
フィリップ