From 79055f727bae55a127a024e8750dfcee8881b889 Mon Sep 17 00:00:00 2001 From: Kara Date: Mon, 12 Sep 2016 15:15:50 -0700 Subject: [PATCH] fix(forms): support dots in control names in contains (#11542) Closes #11535 --- modules/@angular/forms/src/model.ts | 3 +-- modules/@angular/forms/test/form_group_spec.ts | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/@angular/forms/src/model.ts b/modules/@angular/forms/src/model.ts index c2ab359d65..20a110cb98 100644 --- a/modules/@angular/forms/src/model.ts +++ b/modules/@angular/forms/src/model.ts @@ -626,8 +626,7 @@ export class FormGroup extends AbstractControl { * Check whether there is a control with the given name in the group. */ contains(controlName: string): boolean { - const c = StringMapWrapper.contains(this.controls, controlName); - return c && this.get(controlName).enabled; + return this.controls.hasOwnProperty(controlName) && this.controls[controlName].enabled; } setValue(value: {[key: string]: any}, {onlySelf}: {onlySelf?: boolean} = {}): void { diff --git a/modules/@angular/forms/test/form_group_spec.ts b/modules/@angular/forms/test/form_group_spec.ts index 3e3e2d32d6..4bc4e2295f 100644 --- a/modules/@angular/forms/test/form_group_spec.ts +++ b/modules/@angular/forms/test/form_group_spec.ts @@ -569,6 +569,13 @@ export function main() { expect(group.contains('optional')).toEqual(true); }); + + it('should support controls with dots in their name', () => { + expect(group.contains('some.name')).toBe(false); + group.addControl('some.name', new FormControl()); + + expect(group.contains('some.name')).toBe(true); + }); });