gpt4 book ai didi

ember.js - Ember 数据剩余适配器错误处理不起作用

转载 作者:行者123 更新时间:2023-12-03 07:50:05 25 4
gpt4 key购买 nike

我有一个基本的Ember应用程序,我正在尝试处理保存时的验证错误(模型正在使用REST适配器)。在我的 route ,我正在做:

task.save().then(
function() {alert("success");},
function() {alert("fail");}
).catch(
function() {alert("catch error");}
);

当记录有效时,我会收到“成功”警报,但是当记录无效时,我就不会得到“失败”警报或“捕获错误”。在控制台中,我得到:
POST http://localhost:8080/api/tasks 422 (Unprocessable Entity)
Error: The adapter rejected the commit because it was invalid

api的响应如下所示:
{"errors":{"name":["can't be blank"],"parent_task":[]}}

我正在使用Ember Data 1.13。

最佳答案

您需要扩展适配器以处理错误,REST适配器不会为您执行此操作(仅 Activity 模型一个)

像这样:

App.ApplicationAdapter = DS.RESTAdapter.extend({

ajaxError: function(jqXHR) {
var error = this._super(jqXHR);
if (jqXHR && jqXHR.status === 422) {
var response = Ember.$.parseJSON(jqXHR.responseText),
errors = {};

if (response.errors !== undefined) {
var jsonErrors = response.errors;
Ember.EnumerableUtils.forEach(Ember.keys(jsonErrors), function(key) {
errors[Ember.String.camelize(key)] = jsonErrors[key];
});
}
return new DS.InvalidError(errors);
} else {
return error;
}
}
});

关于ember.js - Ember 数据剩余适配器错误处理不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31712857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com