REST アダプターで Ember データを使用します。サーバーの応答が遅い場合でも、アプリケーションが失敗しないようにしたいと考えています。
JSON 応答を返す前に、サーバー側で 5 秒のスリープ メソッドを追加して、この bij をシミュレートしました。
SAVE ボタンのあるフォームがあり、前の保存がまだ進行中にこのボタンをクリックすると、inFlight エラーが発生し、Ember アプリ全体がフリーズします (できることは、アプリをリロードすることだけです)。そのため、isSaving 状態を確認することで、保存ボタンを簡単に無効にすることができます。
<button {{action 'save'}} {{bindAttr disabled="isSaving"}}>Save</button>
また、以前の保存がまだ進行中のときにフォーム フィールドを変更すると、inFlight エラーが発生するようです。したがって、これは完全なフォームも無効にする必要があることを示しています。
Uncaught Error: Attempted to handle event `willSetProperty` on
<App.Author:ember477:5203e34599808d1c6c000001> while in state
rootState.loaded.updated.inFlight. Called with {reference: [object Object], store:
<App.Store:ember541>, name: name}
これらのケースを処理するための既知の優れたプラクティスはありますか...これらのエッジケースに対して多くのロジック (ボタンを無効にする、フィールドを読み取り専用に設定するなど) を追加する必要がないようにしたいです。