問題タブ [meteor-publications]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Meteor.jsのサーバー側変換関数の後にmongoプロジェクションをセットアップする方法は?
元のドキュメントへのアクセスを必要とする変換を適用した後、公開機能からクライアントに送信されるフィールドの数を制限する必要があります。
私は基本的に、潜在的に巨大な配列をクライアントに送信することを避け、一連のチェックを実行して、処理する適切なオブジェクトを返すようにしています。
Heres私が今持っている機能です - それは機能しますが、私が望む方法ではなく、基本的に機能を観察するために与えられたフィールドを制限します。観察/変換後に投影を追加する方法はありますか?
meteor - パブリケーションの onStop コールバックは Meteor でどのように機能しますか?
Meteor documentationに従って、onStop()
関数は次のことを行います。
サブスクリプションが停止されたときに実行するコールバック関数を登録します。
onStop()
現在、私は自分のパブリケーション内でこの関数を使用して、ユーザーがページを離れたことを追跡しようとしています。
サブスクリプションはテンプレート ルート コントローラーで呼び出され、ページを離れると公開されたコレクションを使用できないため、直接動作することを期待していました。しかし、私がここにいるのは、パブリケーションがクライアント上でアクティブでなくなったとしても、onStop()
トリガーされないからです。仕組みがよくわからないので、以下に質問です。
onStop()
ユーザーが関連付けられているルートを離れた場合、パブリケーションはトリガーされますか?- そうでない場合、未使用の pub/subs を停止する組み込みの Meteor メカニズムはありますか? はいの場合、どのように機能しますか? タイムアウトですか?
- コールバックを使用/トリガーするには、
Cursor.observe()
またはを使用する必要がありますか?Cursor.observeChanges()
onStop()
onStop()
ブラウザーやタブを閉じたり、現在のユーザー アカウントからログアウトしたりしても、コールバックがトリガーされないのはなぜですか?
meteor - Meteor カーソル数と forEach
パブリッシュ機能のコレクション アイテムにフィールドを追加し、このフィールドでアイテムをフィルター処理する必要がありmin
ますmax
。forEach
カーソルを使用して解決策を見つけました:
しかしCounts.publish
、カーソルのカウントが間違っています。この場合、カーソルを数える方法は?
meteor - リアクティブ コレクションの概要データを公開する
私はコレクションを持っていますが、それが巨大であるためすべてをクライアントに公開したくありませんが、このコレクションからいくつかの統計 (カウント、合計、平均など) を公開する必要があります。
methods
リアクティブじゃないから使えないし、publish
でしか動かないから使えないcursor
。
追加のコレクションを作成して、これらの統計をそこに保存するという考えがありますが、これは少し奇妙に見えます。
それを行う最良の方法は何ですか?
解決
サーバー側:
クライアント側でコレクションを作成します。
使用統計:
javascript - パブリッシュされたカーソルが別のコレクション コンテンツに基づいている場合、リアクティブ パブリケーションを構築する方法は?
と の 2 つのコレクションがitems
ありworksheet
ます。
各ワークシートには、すべてのワークシート_iditem
を格納する配列フィールドがあります。items
このフィールドに基づいて、現在のワークシートのアイテムを公開します。出版物は次のようになります。
この出版物は、現在のページのアイアン ルーター コントローラーで購読されています。
問題は次のとおりです。
items
現在のワークシートフィールドを変更するために、テンプレート レベルのサブスクリプションで専用コンポーネントを使用します。このコンポーネントはブートボックスにロードされます。
現在のワークシートitems
フィールドを変更すると、メインの文書が更新されず、変更が反映されません。ただし、ページをリロードすると、変更が考慮されます。
別のコレクションに依存しているにもかかわらず、リアクティブな状態を維持するには、パブリケーションをどのように設計すればよいですか?