問題タブ [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.
meteor - メテオ、パブリッシュ:コンポジット。テンプレートで結合されたデータにアクセスする方法は?
そこで、publishComposite を使用して、Meteor でコレクションを結合しました。user_id 外部キーを持つ親コレクション (サブスクリプション) があります。Meteor.users コレクションでユーザー名を検索して実際のユーザー名を取得しますが、これを実際に html テンプレートに出力するにはどうすればよいですか。サブスクリプション データはありますが、ユーザー名を実際に参照するにはどうすればよいですか?
パブリッシュコードは次のとおりです。
テンプレートのサブスクリプトは次のとおりです。
テンプレート(ガベージ) ps コースの詳細は別のコレクションから取得されます。詳細を個別に取得する方が簡単で、パフォーマンスが向上したと思います。これはうまく機能します。正しく表示できないのはユーザー名だけです。
提案をお寄せいただきありがとうございます。
javascript - Meteor パブリッシュでの ID によるユーザーのリンク
次の形式の mongo ドキュメントがあります。
...ここで、userIds は明らかに Meteor 独自のユーザー ドキュメントの ObjectIds です。
私が本当に抱えている問題は、ユーザーがグループ内の他のユーザー情報を表示できるようにすることです。この実装では、安全な (読んでください: 自動公開と安全でないものを削除しました) グループ メッセージング システムを想像しています。
現在のパブリッシュの実装は次のようになります。
理想的には、公開を完了する前に操作するコードを実装して、各参加者のデータgroups
も公開したいと考えています。user.profile
想像される最終的な形式は次のようになります。
私が気づいたことの 1 つは、自動公開と安全でないことがなければ、ヘルパー関数を介してクライアントでこれを行うことはできないということです。
meteor - Meteor 1.3.1 と遅延シミュレーション
パブリケーションに追加しようMeteor._sleepForMs(2000);
としてもMeteor._sleepForMs(20000);
、何も起こりません。
どうすれば遅延を追加できますか??
meteor - Iron-router と publish-composite を使用してデータの準備を待つ方法
私は次のルートを持っています:
および次の出版物:
今私の問題は次のとおりです:関連するページが最初にレンダリングされるときは問題はありませんが、グループページビューを実現すると、次の行が表示されます: var members = Meteor.users.find({_id : {$in: group.memberIds}} ); エラーが表示されます:未定義のオブジェクトにはmemberIdsプロパティがありません。group.memberIds を実行するときにサブスクリプションがまだ準備されていないためだと思いますね。ヒントください。ありがとう。
meteor - Meteor 1.3 + React: サブスクリプションの失敗を検出しますか?
私は単純な Meteor サブスクリプションを持っており、データのロード中にロード中のメッセージを表示します。しかし、購読に失敗した場合にエラーメッセージを表示する方法がわかりません。
問題は、サブスクリプション オブジェクトにfailed()
メソッドがなく、ready()
クエリしかないことです。サブスクリプションの失敗をメソッドの小道具として渡すcreateContainer()
方法は?
Meteor.subscribe
メソッドにこの場合のコールバックがあることは知ってonStop
いますが、それを接着してプロパティを渡す方法がわかりません。
javascript - Meteor パブリケーション関数に名前を付ける必要がありますか?
パブリケーション/サブスクリプション モデルがどのように機能するかをよりよく理解しようとしています。
具体的には、チュートリアルのこのステップを参照しています。
この名前tasksPublication
は、チュートリアルの後半では使用されません。
ここのドキュメントを見ると、名前は必要ないようです。
パブリケーション関数に名前を付けても違いはありますか?
javascript - パブリケーションの反応性を維持するにはどうすればよいですか?
カスタム ユーザー権限管理システムからAlanning:roles v2.0に移行しています。私は非常に基本的な構造を持っています:
- 基本ユーザー
- それぞれが特定の設定を持つユーザーのグループ。それらを「グループ」コレクションに保存します。
- グループを管理するユーザーのグループ管理ステータス (各グループにはグループ管理者がいます)。
以前は、グループ メンバーと管理者の mongo_id
を「グループ」ドキュメントに保存していました。このようにして、グループをリアクティブに公開できuserId
ました。「メンバー」または「管理者」フィールドで、グループ ドキュメントにあるかどうかを確認する必要がありました。
Alanning:roles によって強制される適切な管理に切り替えたので、出版物で次のようなことを行います。
Roles.getPartitionsForUser ()
は の新しい関数名にすぎないことに注意してくださいRoles.getGroupsForUser ()
。
ここでの問題は、パブリケーションがrole
コレクションの変更を監視していないため、ユーザーがメンバーになったときにパブリケーションが更新されないことです。私はこれがよくある問題であることを知っており、これを修正する 3 つの方法を知っていますが、どれも満足のいくものではありません。
最良の候補: 非正規化と複製。グループ ドキュメントに自分のフィールド
members
とフィールドを保持します。admins
私を悩ませているのは、同じものの 2 つのバージョンを保持し、矛盾が発生する可能性があることです。パブリケーションに引数を追加し、この引数 (例:
userGroupsAsMember
) を使用してパブリケーションを再実行しますが、クライアントに依存し、不要な情報を送信させます。直接またはパッケージを使用して、低レベルの公開 API を使用します。
Cursor.observe()
過去にこれを直接実行しましたが、効率的にスケーリングできず、不要なサーバー負荷が発生するため、もう依存したくありません。
オプションがありませんか?そうでない場合、私のパブリケーションを反応的に保つための最良の方法は何ですか?