gpt4 book ai didi

javascript - 断言失败 : `AdapterError` expects json-api formatted errors array

转载 作者:行者123 更新时间:2023-11-29 21:10:57 26 4
gpt4 key购买 nike

看完Handling Errors with Ember Data以及许多其他关于如何解决 Ember JS 错误处理的提示和技巧,我仍然无法弄清楚我的代码有什么问题。

对于初学者,我有一个像这样的用户模型:

import DS from 'ember-data';

export default DS.Model.extend({
firstName: DS.attr('string'),
surName: DS.attr('string'),
email: DS.attr('string'),
plainPassword: DS.attr('string')
});

显然我没有从服务器返回密码,但我假设模型需要它才能从注册表中发送密码。不管怎样,继续。

表单模板如下所示:

<!-- start Register -->
<div class="container-fluid">
<form name="form_register" {{action 'submit' on="submit"}} class="form-register" novalidate="novalidate">
<div class="col-md">
<label class="el-input-wrap">
First Name
{{input class="el-input" placeholder='firstName' value=model.firstName}}
</label>
<label class="el-input-wrap">
Last Name
{{input class="el-input" placeholder='surName' value=model.surName}}
</label>
</div>
<div class="col-md">
<label class="el-input-wrap">
Email
{{input class="el-input" placeholder='email' value=model.email}}
</label>
<label class="el-input-wrap">
Password
{{input class="el-input" placeholder='password' value=model.plainPassword type='password'}}
</label>
</div>
<div class="col">
<label class="el-checkbox">
By registering I agree to the terms and conditions
</label>
</div>
<button type="submit" class="el-btn mod-full-w">REGISTER</button>
</form>
</div>
<!-- end Register -->

接下来我有处理注册表单的注册 Controller :

import Ember from 'ember';

export default Ember.Controller.extend({
actions: {
cancel() {
this.get('model').deleteRecord();
return true;
},

submit() {
var user = this.get('model');
user.save().then(
() => this.transitionToRoute('register')
).catch((adapterError) => {
console.log(adapterError);
});
}
}
});

在这里,我尝试了 console.log errors、errors.firstName 等等。但是没有错误显示。

adapterError 告诉我错误格式不是 JSON API 格式。但据我所知,它是:

{
"errors": {
"source": {
"pointer": "user\/email"
},
"detail": "user.email.not_blank"
}
}

最后,我在 adapters/application.js 中使用 RESTAdapter:

import DS from 'ember-data';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';

export default DS.RESTAdapter.extend(DataAdapterMixin, {
namespace: 'app_dev.php/api',
authorizer: 'authorizer:token', //or authorizer: 'authorizer:jwt'
});

对于我的生活,我无法弄清楚哪里出了问题。我将非常感谢任何帮助或指点。谢谢。

最佳答案

想通了。只是我没有返回错误数组。正确的错误响应是:

{
"errors": [{
"source": {
"pointer": "user\/firstName"
},
"detail": "user.first_name.not_blank"
}, {
"source": {
"pointer": "user\/surName"
},
"detail": "user.sur_name.not_blank"
}, {
"source": {
"pointer": "user\/email"
},
"detail": "user.email.not_blank"
}]
}

关于javascript - 断言失败 : `AdapterError` expects json-api formatted errors array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41872485/

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