11

クライアントの更新から特定のプロパティを除外する方法はありますか?

コンソールでコレクションを検査するときにプロパティを表示できないようにする必要があります

4

1 に答える 1

20

絶対。

  1. autopublishデフォルトでオンになっているパッケージを削除します。meteor remove autopublish

  2. コレクションを作成します。Rooms = new Meteor.Collection("rooms"); これは両方に存在する必要があるため、条件付きの isServer または isClient は必要ありません。

  3. サーバー側のコードで、クライアントに持たせたくないフィールドをゼロにして、コレクションのサブセットのみを公開します。

    if (Meteor.isServer) {
        //you could also Rooms.find({ subsetId: 'some_id' }) a subset of Rooms
        Meteor.publish("rooms", function () {
            return Rooms.find({}, {fields: {secretInfo: 0}});
        });
    }
    

    注: 上記の設定では、コレクション内のすべての行のすべてのインスタンスがゼロに設定{secretInfo: 0}されるわけではありません。クライアント側のコレクションからフィールドを完全に削除します。オフスイッチと考えてください:)secretInfoRooms0

  4. 公開されたコレクションにクライアント側をサブスクライブします。

    if (Meteor.isClient) {
        Deps.autorun(function() {
            Meteor.subscribe("rooms");
        });
    }
    

お役に立てれば!

于 2012-12-18T05:18:16.233 に答える