Comment utiliser la fonction ko.validation.group

J'essaie d'utiliser knockout.validation plugin. J'ai créé un exampleViewModel:

function exampleViewModel() { this.P1 = ko.observable().extend({ required : true }); this.P2 = ko.observable().extend({ required : true }); this.P3 = ko.observable().extend({ required : true }); this.P4 = ko.observable().extend({ required : true }); this.errors = ko.validation.group(this); } 

Dans le modèle de vue ci-dessus, j'ai créé un groupe de validation nommé erreurs pour l'objet actuel. Maintenant, si une règle de validation échoue sur une propriété 1 sur 4 que cette propriété d'erreur contient un message d'erreur.

My question is si je veux créer un groupe de validation de seulement 3 propriétés (P1, P2, P3) sur 4, comment puis-je faire cela?

Cela m'a bien fonctionné. Plutôt que de regrouper, créez un objet proxy qui détient les propriétés que vous souhaitez valider.

 this.errors = ko.validation.group({ P1: this.P1, P2: this.P2, P3: this.P3 }); 

Si vous faites cela, envisagez d'utiliser validatedObservable au lieu de group . Non seulement vous obtenez les erreurs, mais vous pouvez collectivement vérifier si toutes les propriétés sont valides à l'aide de la propriété isValid .

 this.validationModel = ko.validatedObservable({ P1: this.P1, P2: this.P2, P3: this.P3 }); // is the validationModel valid? this.validationModel.isValid(); // what are the error messages? this.validationModel.errors(); 

Comme décrit dans la documentation, le bon moyen de valider uniquement des observables spécifiques est:

 this.errors = ko.validation.group([this.P1, this.P2, this.P3]);