diff --git a/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts b/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts index a2a1ea4ade..fa93144ee7 100644 --- a/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts +++ b/modules/@angular/common/src/forms/directives/select_control_value_accessor.ts @@ -68,7 +68,10 @@ export class SelectControlValueAccessor implements ControlValueAccessor { } registerOnChange(fn: (value: any) => any): void { - this.onChange = (valueString: string) => { fn(this._getOptionValue(valueString)); }; + this.onChange = (valueString: string) => { + this.value = valueString; + fn(this._getOptionValue(valueString)); + }; } registerOnTouched(fn: () => any): void { this.onTouched = fn; } diff --git a/modules/@angular/common/test/forms/integration_spec.ts b/modules/@angular/common/test/forms/integration_spec.ts index 3fa0c4571d..306bb4bd9e 100644 --- a/modules/@angular/common/test/forms/integration_spec.ts +++ b/modules/@angular/common/test/forms/integration_spec.ts @@ -585,7 +585,7 @@ export function main() { }); })); - it("when new options are added", + it("when new options are added (selection through the model)", inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { var t = `