我最近升级为Ember.js 1.0的金丝雀版。升级后,Ember无法再解析服务器的验证错误。我处理这样的表单提交操作:
submit: (event, view) ->
@get('model').save().then ((response) =>
@transitionToRoute('organization.timeline', @content)
), (response) =>
@set "errors", response.responseText
在更新到canary版本之前,这可以按预期工作。现在,我在验证失败时收到此错误:
TypeError: jsonErrors is not an object
这在调用save
期间发生,因此即使我将代码缩减为:
submit: (event, view) ->
@get('model').save()
我仍然得到错误。
我在Tom Dale的一次演讲中听到,Ember正在推出一个处理验证错误的新系统,我假设这是造成冲突的原因。我找不到这种新方法的任何文档(甚至是拉取请求)。如果有人能指出我正确的方向,那将非常感激。
答案 0 :(得分:0)
看起来我需要改变发送错误的方式。我正在使用铁路后端。响应代码如下所示:
def create
organization = Organization::Master.find(params[:id])
if organization.update_attributes(organization_params)
render json: organization, status: 201
else
render json: organization.errors, status: 422
end
end
Ember现在支持更简单的方法:
def create
organization = Organization::Master.find(params[:id])
organization.update_attributes(organization_params)
respond_with organization
end
有了这个,Ember能够解析错误。