2017-10-19 20 views
0

Je souhaite avoir une règle de validation dans Aurelia. J'ai un tableau booléen (WeekDays) et quand deux items de 7 items dans ce tableau sont true et que la case isAutomatic est cliquée aussi, elle est valide et je peux sauvegarder les données. Par exemple mes règles de validation:satisfiesRule Validation dans Aurelia

private static VALIDATION_RULES = ValidationRules 
.ensure((tc: client.TestConfig) => tc.activateOnWeekDay) 
.satisfiesRule('minTwoDaySelected').when((tc: client.TestConfig) => tc.isAutomatic) 
.rules 

Je veux écrire la fonction minTwoDaySelected, qui renvoie true si minimume deux éléments de tableau sont sélectionnés. Le modèle de l'écrire, est ici:

ValidationRules.customRule(
     'minTwoDaySelected', 
     ..... 
     ..... 
    ) 

Je ne sais pas comment le remplir. Pourrais-tu m'aider s'il te plaît?

Répondre

0

Je SOLED il:

ValidationRules.customRule(
    'minTwoDaysSelected', 
    (obj) => { 
    let i: number 
    let count: number = 0 
    for (i = 0;i < 7;i++) { 
     if (obj[i]) { 
     count++ 
     } 
    } 

    return count > 1 
    }, 
    'Minimum two days of \${$displayName} must be selected.', 
    (obj) => ({ obj }) 
) 

private static VALIDATION_RULES = ValidationRules 
    .ensure((tgc: client.TestGroupTestConfig) => tgc.activateOnWeekDay).displayName('tests.details.week-days') 
    .required().satisfiesRule('minTwoDaysSelected').when((tgc: client.TestGroupTestConfig) => tgc.isAutomatic) 
    .rules 

Et dans le fichier html (Voir):

<input type="hidden" value.bind="batteryConfig.activateOnWeekDay & validate">