When an input is required, ng-invalid-required is added as a class and required="required" is being set as an attribute.
When an input is not required, ng-valid-required is added as a class and no required attribute is being set as an attribute.
(A good way to add required to an input, is through setting a variable on the scope and using ng-required as per Plunkr.)
Here is Plunkr example with one required input and one non required input
What I am struggling with is trying to find specific documentation on the ng-valid-required. I feel slightly confused as the why there's a class with ng-xx-required, when the input is not required.
Thanks in advance for your time. ROCK ON!