{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/5861","labels_url":"https://api.github.com/repos/angular/angular.js/issues/5861/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/5861/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/5861/events","html_url":"https://github.com/angular/angular.js/issues/5861","id":25820989,"number":5861,"title":"ngForm: invalid while in pristine condition","user":{"login":"robschley","id":166706,"avatar_url":"https://avatars.githubusercontent.com/u/166706?v=3","gravatar_id":"","url":"https://api.github.com/users/robschley","html_url":"https://github.com/robschley","followers_url":"https://api.github.com/users/robschley/followers","following_url":"https://api.github.com/users/robschley/following{/other_user}","gists_url":"https://api.github.com/users/robschley/gists{/gist_id}","starred_url":"https://api.github.com/users/robschley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robschley/subscriptions","organizations_url":"https://api.github.com/users/robschley/orgs","repos_url":"https://api.github.com/users/robschley/repos","events_url":"https://api.github.com/users/robschley/events{/privacy}","received_events_url":"https://api.github.com/users/robschley/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/component:%20forms","name":"component: forms","color":"7B947B"},{"url":"https://api.github.com/repos/angular/angular.js/labels/frequency:%20low","name":"frequency: low","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/severity:%20inconvenient","name":"severity: inconvenient","color":"006b75"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20feature","name":"type: feature","color":"00a606"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/32","html_url":"https://github.com/angular/angular.js/milestones/1.3.x%20-%20superluminal-nudge","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/32/labels","id":510155,"number":32,"title":"1.3.x - superluminal-nudge","description":"","creator":{"login":"tbosch","id":690815,"avatar_url":"https://avatars.githubusercontent.com/u/690815?v=3","gravatar_id":"","url":"https://api.github.com/users/tbosch","html_url":"https://github.com/tbosch","followers_url":"https://api.github.com/users/tbosch/followers","following_url":"https://api.github.com/users/tbosch/following{/other_user}","gists_url":"https://api.github.com/users/tbosch/gists{/gist_id}","starred_url":"https://api.github.com/users/tbosch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbosch/subscriptions","organizations_url":"https://api.github.com/users/tbosch/orgs","repos_url":"https://api.github.com/users/tbosch/repos","events_url":"https://api.github.com/users/tbosch/events{/privacy}","received_events_url":"https://api.github.com/users/tbosch/received_events","type":"User","site_admin":false},"open_issues":94,"closed_issues":308,"state":"open","created_at":"2013-12-10T19:41:50Z","updated_at":"2015-03-21T18:27:38Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2014-01-17T17:02:40Z","updated_at":"2015-03-31T17:26:26Z","closed_at":null,"body":"I spoke with @IgorMinar and @matsko about this yesterday during ngConf. Matias asked me to create an issue.\r\n\r\nIn the current implementation of ngForm/ngFormController, a form is marked as invalid even before a user has interacted with it. I proposed that we add a feature to ngFormController that will allow developers to better control when validation is triggered so that the validation can be differed until after a user has interacted with a specific form control or attempted to submit the form.\r\n\r\nI'm willing to help implement these changes if this is something that the team agrees is a good idea. "},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/88178561","html_url":"https://github.com/angular/angular.js/issues/5861#issuecomment-88178561","issue_url":"https://api.github.com/repos/angular/angular.js/issues/5861","id":88178561,"user":{"login":"hrajchert","id":2634059,"avatar_url":"https://avatars.githubusercontent.com/u/2634059?v=3","gravatar_id":"","url":"https://api.github.com/users/hrajchert","html_url":"https://github.com/hrajchert","followers_url":"https://api.github.com/users/hrajchert/followers","following_url":"https://api.github.com/users/hrajchert/following{/other_user}","gists_url":"https://api.github.com/users/hrajchert/gists{/gist_id}","starred_url":"https://api.github.com/users/hrajchert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hrajchert/subscriptions","organizations_url":"https://api.github.com/users/hrajchert/orgs","repos_url":"https://api.github.com/users/hrajchert/repos","events_url":"https://api.github.com/users/hrajchert/events{/privacy}","received_events_url":"https://api.github.com/users/hrajchert/received_events","type":"User","site_admin":false},"created_at":"2015-03-31T17:26:26Z","updated_at":"2015-03-31T17:26:26Z","body":"+1\r\n\r\nI think the solution could be in the lines of adding a method to ngModelController or ngFormController (not sure where it applies) to disable automatic validation.\r\n\r\n```html\r\n<form> <!-- nothing gets added, default behaviour applies -->\r\n   <input required> <!-- default behaviour -->\r\n  <inpurt required ng-validate-on-dirty> <!-- disables automatic, validates manualy on dirty -->\r\n</form>\r\n```\r\n```html\r\n<form ng-validate-on-dirty> <!-- changes default on all subelements-->\r\n   <input required> <!-- only when dirty -->\r\n  <inpurt required ng-automatic-validate> <!-- reenables automatic-->\r\n</form>\r\n```\r\n\r\nWhat do you think?\r\n"}}