2017-05-29 16 views
1

私はember-changeset-validationで検証したいブール値フィールドを属性として持つEmberオブジェクトを持っています。ember-changeset-validationsがbooleanで期待通りに動作しない

典型的な「同意する」チェックボックスです。

agree_terms: validateFormat({ 
regex: /^(true)$/, 
message: 'You need to agree on Terms!' 
}) 

シングが、これは検証したことがないいくつかの理由で、次のとおりです。私はチェンジセットのこのメンバーのための特定の検証がある検証ファイルを、持っている

{{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}} 

:ここ

はHBSコードです正しくTRUEにすると、私はいつもエラーメッセージを受け取ります...私はここで間違っていますか?

答えて

2

これは少しトリッキーです。しかし、私はそれを考え出した。 ember-change-set-validationsは下にember-validatorsを使用します。以来; validateFormatを使用しています。最後にはcodeが実行されています。あなたが私が提供したリンクを見れば、 !canInvoke(value, 'match')が問題を引き起こすかどうかのチェックがあります。チェックボックスのチェックされた値はブール値であり、matchをブール値で呼び出すことができないため、常に無効な検証が行われます。

あなたは何ができますか?まあ。私はember-change-set-validationsember-validatorsのエキスパートではありませんが、カスタムバリデーターを書くのは簡単です。これは、私が以下で行ったことですtwiddle。それはかなりうまく動作しているようだ。

私が理解しているのは、 formatタイプのバリデータでブール値を使用することはお勧めできません(明らかに動作しません)。私はそれが文書化されたことだけを望んだ。これがあなたに役立つことを願っています

+0

うわー!詳細な回答をお寄せいただきありがとうございます。私はember-changeset-validation Githubでこれを投稿するかもしれませんので、ドキュメント化することができます:) – AlejandroVK

+0

これは素晴らしい考えです。他の人にも役立つかもしれません。ありがとう。 – alptugd

関連する問題