我在Ember JS有一个表格,我想:
1。显示错误的每个字段旁边的字段的错误;
2。在表单顶部显示任何常规错误;
第3。当用户更正表单时,这些错误仍然存在。
修改:JSBin here
表格中有以下模板:
{{#if isSaving}}
<p>Saving Record</p>
{{/if}}
{{#if isError}}
<p>There was an error saving the record</p>
Base errors( {{errors.base}} )
{{/if}}
<form {{action 'create' this on='submit'}}>
<p>Title: {{input type="text" value=title}}</p>
<p>Title Errors( {{errors.title}} )</p>
<p>Body: {{textarea value=body}}</p>
<button>Create</button>
</form>
现在我的服务器正在返回以下内容
{"errors":{"body":["can't be blank"],"title":["should begin with a capital letter"],"base":["General error message here"]}}
上面的 errors.title
正在返回一个对象。我怎样才能从中获取信息。
当用户开始输入时,对象消息将被删除。
isError
似乎永远无法解雇。
我做错了什么?
答案 0 :(得分:0)
首先:您的errors.title
(与服务器响应的所有其他属性一样)为Array
,因此您将获得errors.title[0]
的标题。由于您无法直接从Handlebars
引用它,因此您必须从控制器提供它或将服务器响应传递给自定义帮助程序。
第二:说出为什么isError
在没有代码的情况下永远不会被触发/设置是很难的(或者说更不可能)...
答案 1 :(得分:0)
errors是一个数组,迭代它们的正确方法如下:
{{#each errors.fieldname}}
{{this.message}}
{{/each}}