2017-08-02 15 views
0

私は検証ルールを使用するユーレカフォームと、各フォームフィールドの検証ステータスを反映する.cellUpdate()を持っています。さらに、フォーム全体の検証ステータスを表示する必要があります(「OK」ボタンの色付け/有効化)。この目的のために、FormViewControllervalueHasBeenChangedコールバック関数を使用します。すべての行を繰り返し、row.isValidをテストします。ただし、isValidの前にの値が実際に変更されているようです。ユーレカ:フォーム検証が最新でない

どのようにして、目的のメカニズムをきれいに(つまり、グローバル変数などで操作しなくても)達成できますか?

答えて

0

コールバックは確かにRowOf<T>.didSetに呼び出されますが、isValidvalidationErrors.isEmptyの結果を与えています。 validationErrorsのリストは、の後にの行の内部_valueが設定された後に更新され、私の質問に記載された動作が発生します。私が理解しているように、それは行の設定が何であってもこの方法ですvalidationOptions

valueHasBeenChanged関数のrow.validate()を呼び出して、行のisValidステータスを読み取る前に明示的に検証をトリガーすることです。行の検証ルールの追加呼び出しのコストは、私にとっては無視できる程度です。

関連する問題