我试图找到避免在使用Ember数据时出现错误时添加记录的最佳方法:
这是我的代码:
createUser: function() {
// Create the new User model
var user = this.store.createRecord('user', {
firstName: this.get('firstName'),
lastName: this.get('lastName'),
email: this.get('email')
});
user.save().then(function() {
console.log("User saved.");
}, function(response) {
console.log("Error.");
});
},
我在后端验证架构并在失败时返回422错误。
如果我没有处理错误,则会将记录添加到网站,我也会收到控制台错误。
所以我这样做了:
user.save().then(function() {
console.log("User saved.");
}, function(response) {
user.destroyRecord();
});
在阅读服务器响应后删除记录的哪种方法有效:
1)我看到记录出现并消失(就像一个视觉故障,以某种方式说出来)。
2)仍然出现控制台错误。
有没有办法更好地处理这个问题?我的意思是,有没有办法避免在服务器返回错误时添加记录?有没有办法避免显示控制台错误?
提前致谢
答案 0 :(得分:0)
您需要在控制器中捕获错误,然后使用deleteRecord()将其从商店中删除:
actions: {
createContent() {
let record = this.store.createRecord('post', {
title: ''
});
record.save()
.then(rec => {
// do stuff on success
})
.catch(err => {
record.deleteRecord();
// do other stuff on error
});
}
}