`ngMessages` is a directive that is designed to show and hide messages based on the state
of a key/value object that it listens on. The directive itself complements error message
reporting with the `ngModel` $error object (which stores a key/value state of validation errors).
`ngMessages` manages the state of internal messages within its container element. The internal
messages use the `ngMessage` directive and will be inserted/removed from the page depending
on if they're present within the key/value object. By default, only one message will be displayed
at a time and this depends on the prioritization of the messages within the template. (This can
be changed by using the `ng-messages-multiple` or `multiple` attribute on the directive container.)
A remote template can also be used to promote message reusability and messages can also be
overridden.
Click here to learn more about `ngMessages` and `ngMessage`.