javascript - store.CreateRecord 推送记录来存储来自服务器的负面响应

标签 javascript ember.js ember-data

我有以下功能:

    this.store.createRecord('user', params).save().then(()=>{
      this.set('responseModal', 'Utworzono użytkownika!');
    })

我的问题是:为什么 Ember 在服务器响应之前推送记录来存储? 例如:我错误地填写了表单,我的服务器返回错误和状态:400,但没有 id-key 的记录仍在存储中。我尝试过这样的事情:

.catch(()=>{
      user.unloadRecord();
    });

但是当某些记录显示并立即隐藏时,它看起来很糟糕。有什么方法可以在没有外部库的情况下仅在服务器响应后在商店中创建记录?我只想使用 ember-data 将客户端与服务器连接。如有任何意见和建议,我们将不胜感激

最佳答案

如果表单提交未成功,那么我们将使用用户已提供的数据再次尝试。所以我们需要将数据存储在store中。如果您正在导航到其他页面或不想再次尝试使用旧数据,那么您可以随时使用 rollbackAttributes

If the model hasDirtyAttributes this function will discard any unsaved changes. If the model isNew it will be removed from the store.

关于javascript - store.CreateRecord 推送记录来存储来自服务器的负面响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42857220/

相关文章:

javascript - 如何优化 async.js API 调用?

javascript - 通过 Google Chrome 扩展将代码注入(inject) Gmail - 如何确保我的脚本在完成加载后被注入(inject)?

ember.js - 如何使用 ember.js 单击指向表行的链接?

ajax - Ember.js REST Ajax 成功和错误

javascript - 在 angularjs 工厂方法中添加事件监听器未按预期工作

javascript - 在 Ember.js 中访问多个装置的数据

ember.js - 如何序列化ember数据中的嵌入式关联?

javascript - 调用 unloadRecord 后 Ember.js "calling set on destroyed object"错误

ember.js - 如何为 ember 添加默认值有很多关系?

javascript - Laravel 5.2 - 所有公开的 CSS 和 JS 文件都是空的