Validation ember变更集验证未按预期使用布尔值
我有一个Ember对象,它的属性是一个布尔字段,我想用Ember变更集验证来验证它 这是典型的“同意条款”复选框 以下是哈佛商学院代码:Validation ember变更集验证未按预期使用布尔值,validation,ember.js,Validation,Ember.js,我有一个Ember对象,它的属性是一个布尔字段,我想用Ember变更集验证来验证它 这是典型的“同意条款”复选框 以下是哈佛商学院代码: {{one-way-checkbox changeset.agree_terms class="form-control" update=(action (mut changeset.agree_terms))}} {{#each changeset.error.agree_terms.validation as |error|}} <sp
{{one-way-checkbox changeset.agree_terms
class="form-control"
update=(action (mut changeset.agree_terms))}}
{{#each changeset.error.agree_terms.validation as |error|}}
<span class="text-danger help-block m-l-3">{{t (concat 'bookings.error.' error)}}</span>
{{/each}}
问题是,由于某些原因,这永远不会正确地验证为真,我总是收到错误消息…知道我在这里做错了什么吗?这有点棘手;但我明白了。一定要利用下面。自从您正在使用
validateFormat
;以下内容将在最后运行。如果你看看我提供的链接;有一张支票!canInvoke(值“匹配”)
会导致问题。由于复选框的选中值是布尔值,并且不能对布尔值调用match
,因此最终验证总是无效的
你能做什么?好;我不是ember变更集验证
和ember验证程序
方面的专家,但编写自定义验证程序非常容易。这就是我在下面所做的。它似乎工作得很好
我所理解的是;将布尔值与
格式
类型验证器一起使用不是一个好主意(它显然不起作用);我只希望它被记录在案。我希望这对你有帮助。哇!非常感谢您提供的详细答案,我可能会在ember changeset validations Github中发布这篇文章,这样他们就可以对其进行记录:)这是一个好主意;它也可能帮助其他人。谢谢
agree_terms: validateFormat({
regex: /^(true)$/,
message: 'You need to agree on Terms!'
})