2016-08-07 8 views
0

私は、各Tradesは、これらの項目は時々変更されており、私は変更を追跡したいMeteor observeChanges()。実際の変更を確認する方法は?

TradesSchema = new SimpleSchema({ 
    // ... 
    items: { 
     type: [String] 
    }, 
    // ... 
}); 

Trades.attachSchema(TradesSchema); 

内の項目の配列を持っているこの

Trades.find().observeChanges({ 
    changed: function(id, fields) { 
     // do stuff 
    } 
}); 

ようなコードを持っています。 fieldsでは、変更された項目だけでなく、すべての項目が返される点を除いて、コードは正常に機能します。

コレクションの構造を変更せずに正確にどのアイテムが変更されたか確認する方法はありますか?

+2

に見えます。 – Season

答えて

1

ありがとう@ヒントのためのシーズン!


observeChangesは新しい値のみを与えるため、新しい文書と古い文書の両方を返すので、 observeを使用する必要があります。次に、それらを比較して、正確に何が変わったのかを確認する必要があります。その `changed`は、常に新しい価値を提供しますので、これはobserveChanges``によって痛んで達成することができないように。あなたの比較のために新しい、古い文書の両方を与える代わりに、 `observe`試してみてください( See docs for observe on meteor.com)

Trades.find().observe({ 
    changed: function(newDocument, oldDocument) { 
     // compare newDocument to oldDocument to find out what has changed 
    } 
}); 
関連する問題