I looked inside the form controller source code:
form.$addControl = function(control) {
// Breaking change - before, inputs whose name was "hasOwnProperty" were quietly ignored
// and not added to the scope. Now we throw an error.
assertNotHasOwnProperty(control.$name, 'input');
controls.push(control);
if (control.$name) {
form[control.$name] = control;
}
};
In your case, the input's control.$name === "order.id"
, so this what happens:
form["order.id"] = control;
The solution is to refer the control like so:
<span class="error"
ng-show="CustomerRegisterForm['order.id'].$error.required">Required!
</span>