我将 Ember 数据与 REST 适配器一起使用。我想确保在服务器响应缓慢的情况下,应用程序不会失败。
我已经模拟了这个 bij 在返回 JSON 响应之前在服务器端添加了 5 秒的睡眠方法。
如果您有一个带有 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}
是否有处理这些情况的已知良好做法......我想防止我需要为这些边缘情况添加大量逻辑(禁用按钮、只读设置字段等)。