プロパティに値がない場合、検証は呼び出されないようです。
これは私が試してみて、それを動作させるために使用しているコードです:null/empty/length == 0が起動しない場合の検証.pass
.ensure('baseContent.SetNamePrint').passes((name) =>
{
var webNameLength = this.baseContent.SetNameWeb.length;
var printNameLength = name.length;
console.log(webNameLength);
console.log(printNameLength);
if ((webNameLength > 1 && webNameLength < 51) || (printNameLength > 1 && printNameLength < 51)) {
return true;
}
return false;
}).withMessage('Web Name or Print Name is Required')
ザ・はとき、それは空の長さのものにプロパティの値が変更され、(空白文字列)が何だけ火を渡します起こる
私が必要とするのは、変更があったときだけでなく、値がある場合にだけ、値が変更されるたびに.passes()が呼び出されるためです。
このコードはミラーリングされていますが、別のプロパティで少し変更されていますので、基本的には2つのプロパティのいずれかが必要です。これは空であれば有効です。 –
@AndyGouldそれでは、複数のプロパティを含む検証が必要です。 'onValidate()'を使って、 "サブジェクト全体の検証時に呼び出されるコールバックを登録する"ことを考えてください。注意しなければならないのは、プロパティ値が変更されたときにコールバックが自動的に起動されないということです。あなたのケースでは、私は可能な限り各プロパティ(例えば、長さb/w 1と51)を制約し、フォーム提出時に "XまたはYが必要です"のように 'onValidate'を使います。 – qtuan
もう一つの特別なオプションは、 'webOrPrintName'のような計算されたものを持って、その代わりに検証を適用することです。 – qtuan