Its not bug, its desired behaviourof angular, when value is not valid , it is not binded to ngModelController , 

https://docs.angularjs.org/api/ng/type/ngModel.NgModelController

But there is possibility to attach custom email validator ($parsers)
https://docs.angularjs.org/api/ng/type/ngModel.NgModelController#$parsers

You can push parser to array of parser so it will be executed as last, and return modelValue so you will "override" angular validator and bind invalidValue to ngModel.

Is this a bug? Angular removes object params when corresponding input is not valid
When I play the 'quick battle' offline mode of Soul Calibur V, I get the impression that I'm fighting real player's characters being controlled by the game's AI, based on the character names, and costumes.  Some of these characters behave wildly different from one another, to the point that it almost feels like I'm fighting actual human players (impossible, as I don't have Xbox Live Gold). Some of these characters are much more 'skilled' than others, as well.

What defines the behaviour of someone's character in quick-play mode?  Does the game 'watch' them play, and then try to use the same combos the player used in their games?
