我正致力于添加用户表单。有三个必填字段(名字,姓氏和电子邮件)。我有服务器端验证。
例如,我有以下回复和以下视图:
{"errors":{
"lastName":["NullableFieldValue"],
"email":["UnexpectedFieldValue"]
}
}
简化模板:
{{#each error in errors.messages}}
{{error}}<br/>
{{/each}}
<span>Name</span>
{{input classBinding="errors.firstName:has-error :form-control" placeholder="First" value=firstName}}
{{input classBinding="errors.lastName:has-error :form-control" placeholder="Last" value=lastName}}
<span>Email</span>
{{input classBinding="errors.email:has-error :form-control" placeholder="Input Email Address" value=email}}
问题在于:如果我更改带有错误的字段(甚至是焦点和非聚焦字段),错误将消失。如何在下次提交之前将错误保留在字段中?
答案 0 :(得分:0)
我认为如果你要这样做,你需要覆盖DS.Errors
,或者当从服务器收到错误时,创建你自己的错误对象并将其附加到记录中。 DS.Errors
会观察模型上的所有属性,如果发生更改,则会清除相应的错误。这是预期的行为,因为大多数验证实现都假定如果值发生更改,则要纠正错误。
另一个注意事项 - errors
哈希通常意味着存在人为错误,而不是服务器错误或错误代码,因此可能会对您的实施产生一些影响。