9

Meteor では、クライアントがサブスクライブするコレクションを取得しました。場合によっては、サーバー上のコレクションに存在するドキュメントを公開する代わりに、偽のデータを送信したいことがあります。this.addedこれで、パブリッシュの関数を使用して問題ありません。

私の問題は、偽のドキュメントを実際のドキュメントであるかのように扱いたいということです。具体的には、更新したいときに面倒です。実際のドキュメントについては実行しますRealDocs.updateが、偽のドキュメントでそれを実行すると、サーバー上にその表現がないため失敗します(そのように保ちたいです)。

このようなものを渡すことができるコレクション API はlocal = true素晴らしいですが、それを実装するのがどれほど難しいかはわかりませんし、コア コードを変更するのは好きではありません。

現在、私はどちらかの作成に行き詰まっていますBogusDocs = new Meteor.Collection(null)が、クライアントコードにフィクスチャをハードコーディングするか、メソッドを使用してサーバーからデータを取得する必要があり、BogusDocs.update代わりに呼び出す必要があるため、コレクションの作成がより困難になります。偽のRealDocs.updateデータを扱っているとすぐに。

実際にサーバーにデータを挿入して後で削除することもできますが、データは実際にはサーバー側のコレクションとは何の関係もないので、それは避けたいと思います。

この問題にアプローチする方法について何か考えはありますか?

4

5 に答える 5

0

ブラウザーのローカル ストレージに取り組んでいる人もい ます https://github.com/awwx/meteor-browser-store 彼らのアイデアの一部を「偽の」ドキュメントを提供するように適応させることができるかもしれません。

于 2013-09-13T16:59:16.590 に答える
0

コレクションの変換機能を使用して、(クライアント上で) それ自体をどうするかを知っているオブジェクトを作成します。正しい更新方法 (本物/偽物) を指定してから、一般的な方法ではなく .update を呼び出します。

this.added のコードを変換プロセスに入れることができます。

于 2013-09-13T18:09:08.563 に答える
0

これはあなたにとっても興味深いかもしれませんが、私は meteorpad でネイティブの Meteor ローカル コレクションを使用して 2 つの例を作成しました。最初のパッドは、単純なリアクティブ レコードセットの例を示しています: Sample_Publish_to_Local-Collection。2 つ目は、コレクション.observeメソッドを使用してデータをリッスンします: Collection.observe()

于 2015-04-30T18:30:02.953 に答える