Ember.js在第页显示Ember数据验证错误
我在获取默认JSONAPIAAdapter以将模型验证错误传播到登录页面时遇到问题。我已通过捕获错误并使用Ember.js在第页显示Ember数据验证错误,ember.js,ember-data,Ember.js,Ember Data,我在获取默认JSONAPIAAdapter以将模型验证错误传播到登录页面时遇到问题。我已通过捕获错误并使用控制台验证API服务器是否正确发送响应。log验证适配器和模型是否正确处理返回的数据,但由于某些原因,我无法使其显示在页面上: 来自API服务器的JSON响应: { errors: [ { detail: 'Display name already exists', source: { pointer : 'data/attri
控制台验证API服务器是否正确发送响应。log
验证适配器和模型是否正确处理返回的数据,但由于某些原因,我无法使其显示在页面上:
来自API服务器的JSON响应:
{ errors: [
{
detail: 'Display name already exists',
source: {
pointer : 'data/attributes/display-name'
}
},
{
detail: 'Email already exists',
source: {
pointer : 'data/attributes/email'
}
}
]}
这还会返回控制台日志中显示的422
状态:加载资源失败:服务器响应状态为422(不可处理实体)
如果我没有.catch()记录错误,它将在console.log中记录以下内容,根据我所阅读的内容和在代码中看到的内容,这些内容是标准的:
ember.debug.js:19746 Error: The adapter rejected the commit because it was invalid
at ErrorClass.EmberError (ember.debug.js:19681)
at ErrorClass.AdapterError (errors.js:23)
at ErrorClass (errors.js:49)
at Class.handleResponse (rest.js:820)
at Class.handleResponse (data-adapter-mixin.js:100)
at Class.superWrapper [as handleResponse] (ember.debug.js:25367)
at ajaxError (rest.js:1341)
at Class.hash.error (rest.js:915)
at fire (jquery.js:3187)
at Object.fireWith [as rejectWith] (jquery.js:3317)
控制器代码如下所示:
user.save().then(() => {
this.set('valid', 'Success! Log in!');
}).catch(() => {
console.log(user.get('errors.email')[0].message);
console.log(user.get('errors.displayName')[0].message);
});
上面的catch和console.log正确记录了错误消息,这意味着适配器正在成功捕获错误并序列化它以在模型中使用。模板出现了以下问题:
<div class="col-sm-6">
<h2>ERRORS</h2>
{{#each user.errors.displayName as |error|}}
<h4>{{error.message}}</h4>
{{/each}}
{{#each user.errors.email as |error|}}
<h4>{{error.message}}</h4>
{{/each}}
<h2>END ERRORS</h2>
</div>
错误
{{{#each user.errors.displayName as{124; error}
{{error.message}}
{{/每个}}
{{{#each user.errors.email as | error |}
{{error.message}}
{{/每个}}
结束错误
根据这一点,这应该是设置此项的适当方式,但我无法在我的前端的错误和结束错误标题之间正确显示错误