1

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} 

これらのケースを処理するための既知の優れたプラクティスはありますか...これらのエッジケースに対して多くのロジック (ボタンを無効にする、フィールドを読み取り専用に設定するなど) を追加する必要がないようにしたいです。

4

1 に答える 1

2

実行しようとしている範囲内ではないかもしれませんが、Ember Persistence Foundationは、保存がまだ進行中のときにモデルを更新できるように設計されています。

モデルを EPF に移行するのは比較的簡単ですが、コントローラ コードにいくつかの変更が必要です。 「Ember データからの移行」を参照してください。

于 2013-08-09T06:19:14.207 に答える