TypeError:jsonErrors不是对象

时间:2013-10-22 18:51:50

标签: ember.js

我最近升级为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正在推出一个处理验证错误的新系统,我假设这是造成冲突的原因。我找不到这种新方法的任何文档(甚至是拉取请求)。如果有人能指出我正确的方向,那将非常感激。

1 个答案:

答案 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能够解析错误。