web-dev-qa-db-ja.com

emberデータレコードをリロードする方法は?

新しいルーターとember data rev 11を使用しています。

サーバーからレコードのデータを再ロードするようにember-dataを強制する必要があります。 setInterval関数でApp.MyRecord.find(2)を使用すると、クライアントのローカルストアからデータが読み込まれます。

サーバーからデータを再ロードするにはどうすればよいですか?

27
ramigg

I プッシュされたばかりrecord.reload() to Ember Data。これにより、サーバーにデータをリロードし、新しいデータでレコードを更新するようアダプターに要求します。

制約:

  • レコードがreload()を呼び出すことができるのは、レコードの読み込みが完了し、まだ変更されていない場合のみです。そうしないと、返されたデータが変更されたデータと競合します。今後、これらの種類の競合に対処するためのマージフックのサポートを追加し、より多くのレコード状態でreload()を使用できるようにします。
  • アダプターが新しいデータを返す前にreload()を呼び出してレコードを変更または保存すると、同じ理由でエラーが発生します。エラーは現在、_Attempted to handle event 'reloadRecord' on <Person:ember263:1> while in state rootState.loaded.updated.uncommitted._のようなものです。基本的に、これはレコードが「更新されていますがコミットされていない」状態にあり、「ロードおよび変更されていない」状態以外ではreload()を呼び出すことができないことを意味します。
55
Yehuda Katz