2016-04-03 2 views
2

メテオールのほとんどは、コレクションとカーソルの周りを回転し、コレクションに現れたときに新しい文書を取り込み、基準に一致します。しかし、私はより大きな文書を扱っており、複数の分野を含み、深くて予測できない構造を持っています。トップレベルには明確なスキーマがありますが、サブ文書の中には予測できないjsonデータがあります。メテオに反応しない文書の一部を作る方法

しかし、のはシンプルな例を見てみましょう:

Reports = new Mongo.collection('reports'); 

Meteor.publish('reports', function() { 
    return Reports.find({}); 
}); 

し、クライアント側では、私はレポートを開き、かなり複雑使って、画面上にそれを入れない専用のHTMLレンダリング機能が、その後がありますレポート内に埋め込まれたフリーテキストコメントフィールド。それらが変更されたとき、私は自動的にそれらを

Meteor.call("autosaveReport",reportId,comment); 

を保存すると、その後毎回のコメントは、流星トラッカー再放送を自動保存されていることを、

Meteor.methods({ 
    "autosaveReport": function(reportId,comment) { 
     Reports.update({_id:reportId},{$set:{comment:comment}}); 
    } 
); 

問題があるコメントに書い流星方法がありますこのレポートに関連するすべての購読と検索また、レポートのサイズが大きくレンダリングも複雑なため、リロードはユーザーに表示され、シームレスな自動保存の目的が損なわれます。

質問 - mongo文書の一部に対してのみ反応性を引き起こすことは可能ですか?現在、私はレンダリング時に古い文書と新しい文書を手動で比較して解決し、コアに違いがなければ再レンダリングを停止します。それは奇妙で、流星の精神に反していると感じます。あなたのヘルパーやテンプレートのデータコンテキストを設定し、ルートで

答えて

1

、検索で{reactive: false}を使用します。

return Reports.find(query,{reactive: false}); 

基礎となるオブジェクトの変更ヘルパーは更新されません方法。

しかし、このフラグはすべてまたは何も表示されませんが、観察する変更や無視するものを選択することはできません。

関連する問題