Multi Error Extractor
The Multi Error Extractor is a component that displays all the errors of a form.
It can receive a validator object either from a direct prop or via a FormWrapper, see Using a Form Wrapper.
An attributes prop cam be passed to identify each field's name in the form. Passing a local attributes prop will override the global attributes.
The component does not come with any special styling or markup. We do however provide optional prebuilt templates for Foundation6 and Bootstrap3.
Providing custom templates and styling can be done by either using the baseMultiErrorExtractor component or the multiErrorExtractorMixin.
The baseMultiErrorExtractor loops all the errors and exposes a scoped slot with error and error-message params.
Preparation
The multiErrorExtractor component is not registered by default. Import either one of the prebuilt templates or the baseMultiErrorExtractor and build your own.
import { templates } from 'vuelidate-error-extractor'
Vue.component('form-errors', template.multiErrorExtractor.foundation6)
Usage
This is the basic usage of a multi-error-extractor component. By default, it expects a validator object to be passed.
<form-summary :validator="$v.form"/>
An optional attributes prop can be passed, to map each error field by name to its {attribute} placeholder in the validation messages.
You can skip the attributes param and rely on the globally defined attributes on initialization. Check the Attributes Page for more info. Make sure that you either pass a local attributes or have it defined globally.
You can also provide a messages prop, that is an object of error messages. It will override the globally defined messages with the same keys.
That allows for custom error messages, perfect when you want a specific validation message that is not applicable anywhere else. Check Overriding Messages for more examples.
<template>
<form-summary
:validator="$v.form"
:messages="localMessages"
:attributes="attributes"
/>
</template>
<script>
import { templates } from 'vuelidate-error-extractor'
export default {
components: { formSummary: templates.multiErrorExtractor.foundation6 },
data () {
return {
form: {}, // form data
localMessages: { // message overrides
required: 'The {attribute} field must be filled in!'
},
attributes: {
name: 'Full name',
email: 'User Email'
}
}
},
validations: {} // some validation rules
}
</script>
The required error message will be Field Name should be filled in. because we override it locally.
Implementing your own
To implement your own Multi Error Extractor template, please checkout the Creating Custom Components page.
Using with FormWrapper
Similar to Single Error Extractors, when used with FormWrapper component, the validator prop is not needed any more. If you have the {attributes} defined globally, you can rely on them, making the component prop-less.
Checkout the Using a FormWrapper section to see how to use the FormWrapper component.
Component Props
| Prop | Type | Required | Description |
|---|---|---|---|
| attributes | Object | required* | The attributes object is a map of field_name: Field Name representing each field in the form with a proper title. Not required with FormWrapper component. |
| validator | Vuelidate object | required* | The vuelidate validator of a form object. Not required when used with FormWrapper component. |
| messages | Object | optional | A collection of local error messages that overwrite the global ones. Check Overriding Messages for more examples. |