For a quick and dirty form, yes. By default, a field is invalid if at any point it's in an invalid state. Since it's not very useful to see a bunch of validation errors when you first open the form, we need some way of toggling when to show errors or not (hence `showErrors()`).

You could dry that up a bit with a `showErrors(form, 'nickname')` method (theoretically $scope.form should reference the form, but it wasn't working for me).

However, that's still a method call per form field which could be further reduced using directives. Off the top of my head we might be able to get away with something like this:

```html
<aggie-form for="source">
  <aggie-field for="nickname"></aggie-field>
</aggie-form>
```

Concise, very `simple_form`-like. However, that takes time and care to get all the use cases right. In the meantime, we can build forms like this one relatively quickly with a bit of duplication here and there.

I'm of the mind we should be layering this stuff on and cleaning things up as we stumble on ways to reuse things (e.g. my `aggie-toggle` directive). It will get more maintainable over time, especially as we pick up on Angular conventions. I feel like I'm learning more every day and finding overlap between this project, my other Angular project, and an Ember.js side project.