ajax错误后无法在对象上设置只读属性“errors”
为了显示来自服务器的错误消息,使用以下代码:ajax错误后无法在对象上设置只读属性“errors”,ajax,ember.js,ember-data,Ajax,Ember.js,Ember Data,为了显示来自服务器的错误消息,使用以下代码: var onFail = function(result) { Ember.Logger.debug("ERROR CustomersCreateController"); var json = result.responseJSON; Ember.Logger.debug(json['errors']); self.set("errors", json['errors']);
var onFail = function(result) {
Ember.Logger.debug("ERROR CustomersCreateController");
var json = result.responseJSON;
Ember.Logger.debug(json['errors']);
self.set("errors", json['errors']);
};
model.save().then(onSuccess, onFail);
但当我收到服务器的响应时:
{"errors":[{"email":"O campo [email] precisa ser informado"}]};
尝试设置错误时引发错误。。。有问题吗?
顺便说一句,我正在从服务器发送一个422错误
编辑1
我看到它跳过了默认错误功能,这是唯一的希望吗
编辑2
调整EDIT1中的解决方案以使用它,但是余烬应该有更简单的解决方案
var onFail = function(result) {
Ember.Logger.debug("ERROR CustomersCreateController");
var json = result.responseJSON;
self.set( "requestMessages", {});
result.responseJSON["errors"].forEach(function(error_obj) {
Ember.Logger.debug(error_obj.field + '='+ error_obj.message );
self.set('requestMessages.' +error_obj.field, error_obj.message);
});
};
在模板上
<div {{bind-attr class=":form-group requestMessages.name:has-error"}} >
<label for="name" class="col-sm-2 control-label">Nome</label>
<div class="col-sm-10">
{{input type="text" class="form-control" value=name}} {{#if
requestMessages.name}} <span class="help-block">{{requestMessages.name}}</span>
{{/if}}
</div>
</div>
我认为回应的形式应该是: {错误:{email:[O campo[email]precisa ser informado]}
每个酒店?您可以返回每个属性的错误消息数组。您可以在模板中循环返回error.email。错误对象将在余烬模型上设置