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]);