2012-03-09 9 views
1

私はIBM's tutorial on CouchDBに従いました。の編集中に問題が発生しました。 新しい文書が正常に機能し、既存のすべての文書の値(openDoc関数で取得)が有効であるように見えますが、新しい値は単純に取り込まれません。Eventlyで更新されたCouchDB文書を保存するにはどうすればよいですか?

enter image description here

しかしsaveDoc戻った後、成功し(奇妙な!)、ドキュメントが更新されない:私はコードの実行をトレースしたように新しい値があるよう

は、それが見えます。更新されたドキュメントをログに記録すると、ログに記録されたオブジェクトには_idまたは_revという値はありませんが、保存している間は明らかに表示されます(最初のスクリーンショットを参照)。

enter image description here

saveDoc、または多分Eventlyのいくつかのニュアンスが、私は理解していないよということ、ありますか?あなたのsuccessコールバックで

答えて

0

、あなたが更新文書をログに記録されていない、あなたがライン87からnewdocオブジェクトをログに記録されている(マイナス、それは明らかに_id_revを未定義saveDoc機能、を経て、それは大丈夫です)。

successコールバックには、サーバーからの応答である引数を付けることができます。あなたが書く場合:

success: function(data) { 
    console.log(data); 
} 

を、あなたは、応答2-から始まる新しい_revに表示されるはずです。

一度更新されたドキュメントを実際に表示したい場合は、successコールバックからopenDocに電話して、最新バージョンを入手してください。 saveDocは非同期で、とにかくすぐに返す必要がありますので、あなたは、

saveDoc戻りが正常に

は、私はあなたがsuccessコールバックが呼び出されることを意味だと思うと言う


その他の詳細、 。

+0

奇妙なことは、コードを変更せずにこれに戻ってきたことです。今は動作します。たぶんキャッシングの問題だったのでしょうか?しかし、特に非同期ビット、素晴らしいヒントありがとうございます。これは後で私の時間のトンを節約します! –

関連する問題