我有一个Ember对象,其属性是一个布尔字段,我想用ember-changeset-validations验证。
这是典型的“同意条款”复选框。
这是hbs代码:
{{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}}
我有一个验证文件,其中对此变更集成员的特定验证是:
agree_terms: validateFormat({
regex: /^(true)$/,
message: 'You need to agree on Terms!'
})
事情是,由于某种原因,这从未正确验证为TRUE,我总是得到错误信息......任何想法我在这里做错了什么?
答案 0 :(得分:2)
这有点棘手;但我想出来了。 ember-change-set-validations确实可以使用下面的ember-validators。以来;你正在使用validateFormat
;最后运行以下code。如果你看看我提供的链接;检查!canInvoke(value, 'match')
会导致问题。由于复选框的选中值是布尔值,并且您无法在布尔值上调用match
,因此您最终会得到无效的验证。
你能做什么?好;我不是ember-change-set-validations
和ember-validators
的专家,但编写自定义验证器非常容易。这就是我在以下twiddle中所做的。它看起来工作得很好。
我理解的是;使用带有format
类型验证器的布尔值并不是一个好主意(它显然不起作用);我只希望它有记录。我希望这会对你有所帮助。