2013-03-19 12 views
5

クライアントに公開されるオブジェクトにプロパティを追加したいとします。公開前のコレクションのコレクション

公開My機能はforms内のすべてのドキュメントが取得する新しいcount属性を持っているということです、私は私が望む何この

Meteor.publish("forms", function() { 
    var forms = Forms.find(); 
    forms.forEach(function (form) { 
    form.nbForms = 12; 
    } 

    return forms; 
}); 

ような何かをしたいという

Meteor.publish("forms", function() { 
    return Forms.find(); 
}); 

のように見えますクライアントに送信されます。

しかし、これは明らかに機能しません。

は、あなたのコレクションを宣言するときは、この機能を追加し、それはあなたのケースで動作しますが、あなたは流星0.5.8

で導入された新しい変換コレクション機能を使用する場合があります

+0

これはなぜサーバー上で発生する必要がありますか?なぜクライアント上のすべてのドキュメントを取得し、そのプロパティを各ドキュメントに追加しないのですか? – Rahul

+2

があります。目標は一度に1ページだけを公開することですが、既存の文書の総数を表示します。また、各ユーザーは権限に応じて異なるビューを持つため、カウントを格納するのは意味がありません。だから私がデータベースにカウントを格納する場合、それはすべてのセッションで更新されます。どちらが間違っていますか –

答えて

2

わからないあなたの助けをありがとうございました第2パラメータ:

Forms = new Meteor.Collection("forms", { 
    transform: function(f) { 
     f.nbForms = 12; 
     return f; 
    } 
}); 

これはサーバーとクライアントの両方に適用されます。パブリッシュ・コンテキストで変換関数を定義する方法があるかどうかはわかりません。

+0

これは役に立ちますが、正確には私が望むものではありません。 目的は、クライアント上に別のオブジェクトを持つことです。問題は、結果が許可に依​​存しているので、各ユーザーの数が必要だということです。 –

+0

@DrGorbそして、なぜ2つのサブプションに分割しないのですか? – mquandalle

+0

クライアント上の結果を変更するのに一番良い方法は –

1

私はあなたが公開でこの流星カウントの例のように何かをする必要があると思う: How does the messages-count example in Meteor docs work?

私もそれが答えだ後に役立つ可能性がここに質問を投稿しました。流星にはthis.addedがありますが、これはうまくいくかもしれませんが、私は現在どのように使用するのか不明です。したがって、以下の質問: Meteor, One to Many Relationship & add field only to client side collection in Publish?

関連する問題