I've hacked a solution to my problem, but I am not pleased, it doesn't feel "angular" to me, and it adds to the maintenance of the code.
First, the form requirements:
- Modular Directives (so I can re-use them.)
- Each field can have multiple errors, but only one is shown at a time, in a logical order...
- Hide the submit button until the form is complete, not just valid.
- Bootstrap Themed
- Do it "the angular way."
The problem is #3. I tried this:
<div ng-show="myform.$valid">
<input type="submit" value="Submit" />
</div>
But this just makes the submit button show up as soon as one field is valid, and then it hides again as you start the next field. My "hack fix" was to create variables on the scope and a method in the controller to check them all (mainly to keep the view clean...) But this just doesn't feel right.
Here's my fiddle: http://jsfiddle.net/thomporter/e3jye/