Disabling form validation

Angularjs is running my forms through the FormController (eg tracking pristine, dirty, etc). I don't need this functionality; I'm sure it's adding overhead to my $digests.

How can I shut it off?

AFAIK there is no simple switch to turn off AngularJS validation. Actually most of the validation happens in the NgModelController and input directives - basically code in the input.js file. So, to get rid of the built-in validation you would have to re-develop code from this file (plus some others, like select).

Did you identify validation code as a performance bottleneck in your application?

UPDATE : This does NOT work ... well at least not in a way you'd like it to. Adding ng-non-bindable to the form or any input breaks ALL binding. So, your ng-model in the inputs won't work anymore. Sorry ....

ng-non-bindable is the solution to this problem.

It will prevent AngularJS from seeing the form as a directive. This will make AngularJS ignore the entire form:

<form name="inviteContactForm" ng-non-bindable>

This will make AngularJS ignore one part of a form:

<input type="email" name="email" ng-non-bindable>

You can read a bit about my whining on this issue here. http://calendee.com/preventing-angularjs-from-hijacking-forms/

Internally Angular creates factories out of directives by adding the Directive suffix to the directive name. So you can replace the validation and input directive factories with no-operational ones.

var noopDirective = function() { return function () {}; };
angular.module('myModule')
    .factory('requiredDirective', noopDirective)
    .factory('ngRequiredDirective', noopDirective)
    .factory('inputDirective', noopDirective)
    .factory('textareaDirective', noopDirective); // etc...