Closed
Description
Bug, feature request, or proposal:
Bug
What is the expected behavior?
No values populated in the select control, or exception thrown
What is the current behavior?
Hangs the browser (Chrome and Safari at least, Edge/FF not tested)
What are the steps to reproduce?
set formControlName
to the name of a control that doesn't exist on the formGroup, i.e. if you accidentally left out a form control. If you're using form.patchValue()
to set the form controls it seems to prevent this issue if the control name is in the object passed to patchValue(), which might make the bug appear more random.
i.e.
<md-select placeholder="Country" formControlName="Country">
<md-option *ngFor="let country of countries" [value]="country.IsoCode">
{{country.Name}}
</md-option>
</md-select>
where "Country" is not the name of a FormControl on the current FormGroup.
Providing a Plunker (or similar) is the best way to get the team to see your issue.
Plunker template: http://plnkr.co/edit/o077B6uEiiIgkC0S06dd
What is the use-case or motivation for changing an existing behavior?
Which versions of Angular, Material, OS, browsers are affected?
Is there anything else we should know?
Seems to be an infinite loop running here:
/**
* Sets the select's value. Part of the ControlValueAccessor interface
* required to integrate with Angular's core forms API.
*
* @param value New value to be written to the model.
*/
MdSelect.prototype.writeValue = function (value) {
var _this = this;
if (!this.options) {
// In reactive forms, writeValue() will be called synchronously before
// the select's child options have been created. It's necessary to call
// writeValue() again after the options have been created to ensure any
// initial view value is set.
Promise.resolve(null).then(function () { return _this.writeValue(value); });
return;
}
this._setSelectionByValue(value);
};