Ember.js服务器端表单验证显示

时间:2014-04-12 01:53:49

标签: ember.js ember-data

我在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似乎永远无法解雇。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

首先:您的errors.title(与服务器响应的所有其他属性一样)为Array,因此您将获得errors.title[0]的标题。由于您无法直接从Handlebars引用它,因此您必须从控制器提供它或将服务器响应传递给自定义帮助程序。

第二:说出为什么isError在没有代码的情况下永远不会被触发/设置是很难的(或者说更不可能)...

答案 1 :(得分:0)

errors是一个数组,迭代它们的正确方法如下:

{{#each errors.fieldname}}
  {{this.message}}
{{/each}}