
Basically there is a strange timing issue where if you set required = true at just the right time it causes the model value to be set to undefined. I have updated the Codepen so it is clearer.

That doesn't seem valid (or intentional?) Not entirely sure, it seems to be due to some strange behavior in AngularJS Material which causes issues with the latest AngularJS changes I linked to. Is that something that can be fixed by Material? Or does it have to be fixed in Angularjs? When $validate() is called the mdSelect $isEmpty implementation returns true as the options are not populated, this results in the ngModelController writing undefined to the scope. The cause of the problem seems to be the $validate() method being called by the AngularJS required directive (via attr.$observe on required attribute) before the options are added to the mdSelect controller. Seems like behavior changes over the last few released of AngularJS have exposed this a4c7bdc Is there anything else we should know? Stack Traces, Screenshots, etc. Browsers: Chrome (latest), Firefox (latest).What is the use-case or motivation for changing an existing behavior? Which versions of AngularJS, Material, OS, and browsers are affected?


Value is deleted from the model, input has an error. It should not delete the value from the model, input should not have an error.
