我已经为我的RestAdapter实施了DS.Errors,感谢关于server side validation的Alex Spellers教程。
但是,在我的应用程序的这一部分中,我想做一个简单的客户端检查以查看表单是否完整。 (为什么没有DS.Errors处理所有错误?)
process: function(upload) {
var form = upload.get('form');
if (!isComplete(form)) {
upload.get('errors').add('field', 'field isempty');
return;
}
// else "Processing..."
这里的逻辑有些简化,但errors.add()应该无效,并向模型添加错误。但是我收到以下错误:
Uncaught Error: Attempted to handle event `becameInvalid` on <@model:upload:54a1f298ef912a2ace760b0f> while in state root.loaded.saved.
我已经阅读了有关状态管理器的信息,但在向模型添加错误之前,我不确定应该如何以及应该转换到什么状态。
提前致谢!
Ember : 1.8.1
Ember Data : 1.0.0-beta.11
Handlebars : 1.3.0
jQuery : 1.11.2
答案 0 :(得分:4)
重新审视后,我遇到了以下post。解决了我的问题的原因是没有发送willCommit
,而是在执行以下内容之前发送upload.send('becomeDirty');
:
upload.get('errors').add('field', 'field isempty');
现在可以添加错误,因为上传模型不在saved
状态。