Validates that the attributes’ values are included in a given list. All comparisons are done using strict equality so type matters! For range, the value type is checked against both lower and upper bounds for type equality.
Examples
validator('inclusion', {
in: ['User', 'Admin']
})
validator('inclusion', {
range: [0, 5] // Must be between 0 (inclusive) to 5 (inclusive)
})
Because of the strict equality comparisons, you can use this validator in many different ways.
validator('inclusion', {
in: ['Admin'] // Input must be equal to 'Admin'
})
validator('inclusion', {
range: [0, Infinity] // Input must be positive number
})
validator('inclusion', {
range: [-Infinity, Infinity] // Input must be a number
})
-
options
-
defaultOptions
-
globalOptions
Build options hook. Merges default options into options object. This method gets called on init and is the ideal place to normalize your options. The presence validator is a good example to checkout
Returns:
-
type
-
value
-
options
Used by all pre-defined validators to build an error message that is present
in validators/message
or declared in your i18n solution.
If we extended our default messages to include uniqueUsername: '{username} already exists'
,
we can use this method to generate our error message.
validate(value, options) {
var exists = false;
get(options, 'description') = 'Username';
get(options, 'username') = value;
// check with server if username exists...
if(exists) {
return this.createErrorMessage('uniqueUsername', value, options);
}
return true;
}
If we input johndoe
and that username already exists, the returned message would be 'johndoe already exists'
.
Parameters:
Returns:
The generated message
Wrapper method to value
that passes the necessary parameters
Returns:
value