カスタムルールを取得できません。私は何か基本的なことを理解していないのが残念です。この例では、b
,bvm
およびberr
はすべてrequired
エクステンダーの予想通りに検証されています。カスタムエクステンダfoo
に対して、a
,avm
およびaerr
は、検証が期待通りに失敗しません。ノックアウト検証カスタムルールが機能しない
validator
からconsole.log()
を呼び出すと、バリデータが起動されていないことが示されます。バリデータ関数を起動する唯一の方法は、initの後にko.registerExtenders
を呼び出すことです(これを行う理由はありませんが、registerExtenders
がデフォルトで有効になっています)。呼び出された場合、エクステンダの作成を参照するとvalidator
がトリガされます。観察可能な配列。
ko.validation.init({
grouping: {
deep: true,
live: true,
observable: true
}
});
ko.validation.rules['foo'] = {
validator: function(arr) {
if (!arr.length) {
return false;
} else {
return true;
}
},
message: 'Please foo.'
};
var a = ko.observableArray().extend({ foo: true });
var avm = ko.validatedObservable({
a: a
});
var aerr = ko.validation.group([a]);
var b = ko.observableArray().extend({ required: true });
var bvm = ko.validatedObservable({
b: b
});
var berr = ko.validation.group([b]);