The default behaviour for updating ngModel (and subsequently validation) is on change; I would like to change that to on blur. The docs only explain how to do this on a case-by-case basis via: <ANY ng-model-options="{ updateOn: 'blur' }"></ANY>
. I went so far as to look thru the source code, but somehow neither ngModelOptions nor ng-model-options is found (despite both occurring in the documentation, which is scraped from the source code).
While the ngModel
decorators written by Jon/John provide a good behind the scene solution, one must also be aware that declaratively, ngModelOptions
need not have to be declared at the individual input field level but can be declared at the module level.
<body ng-app = "myApp" ng-model-options="{ updateOn: 'blur' }">
Doing the above would have all the input fields in myApp
module inherit the ng-model-options.
These can then be overriden in specific input fields if required (eg. search filters).
This plunker demonstrates: http://plnkr.co/edit/2L1arGgHJwK82xVucJ4p?p=preview