From 9a37e827e26ed98f83e949d8785a81f1c2af4dd5 Mon Sep 17 00:00:00 2001 From: Kara Erickson Date: Fri, 9 Aug 2019 17:20:14 -0700 Subject: [PATCH] Revert "feat(forms): formControlName also accepts a number (#30606)" (#32088) This reverts commit a6472984122a73c2c9016746374ef383c6cb52c4. PR Close #32088 --- packages/forms/src/directives/ng_control.ts | 2 +- .../reactive_directives/form_control_name.ts | 10 ++-------- packages/forms/src/directives/shared.ts | 4 ++-- tools/public_api_guard/forms/forms.d.ts | 4 ++-- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/packages/forms/src/directives/ng_control.ts b/packages/forms/src/directives/ng_control.ts index de09f7ff83..0314773902 100644 --- a/packages/forms/src/directives/ng_control.ts +++ b/packages/forms/src/directives/ng_control.ts @@ -36,7 +36,7 @@ export abstract class NgControl extends AbstractControlDirective { * @description * The name for the control */ - name: string|number|null = null; + name: string|null = null; /** * @description diff --git a/packages/forms/src/directives/reactive_directives/form_control_name.ts b/packages/forms/src/directives/reactive_directives/form_control_name.ts index 784ea62a30..11992e5842 100644 --- a/packages/forms/src/directives/reactive_directives/form_control_name.ts +++ b/packages/forms/src/directives/reactive_directives/form_control_name.ts @@ -145,13 +145,9 @@ export class FormControlName extends NgControl implements OnChanges, OnDestroy { * @description * Tracks the name of the `FormControl` bound to the directive. The name corresponds * to a key in the parent `FormGroup` or `FormArray`. - * Accepts a name as a string or a number. - * The name in the form of a string is useful for individual forms, - * while the numerical form allows for form controls to be bound - * to indices when iterating over controls in a `FormArray`. */ // TODO(issue/24571): remove '!'. - @Input('formControlName') name !: string | number | null; + @Input('formControlName') name !: string; /** * @description @@ -242,9 +238,7 @@ export class FormControlName extends NgControl implements OnChanges, OnDestroy { * Returns an array that represents the path from the top-level form to this control. * Each index is the string name of the control on that level. */ - get path(): string[] { - return controlPath(this.name == null ? this.name : this.name.toString(), this._parent !); - } + get path(): string[] { return controlPath(this.name, this._parent !); } /** * @description diff --git a/packages/forms/src/directives/shared.ts b/packages/forms/src/directives/shared.ts index 17347db421..f40274a653 100644 --- a/packages/forms/src/directives/shared.ts +++ b/packages/forms/src/directives/shared.ts @@ -28,8 +28,8 @@ import {SelectMultipleControlValueAccessor} from './select_multiple_control_valu import {AsyncValidator, AsyncValidatorFn, Validator, ValidatorFn} from './validators'; -export function controlPath(name: string | null, parent: ControlContainer): string[] { - return [...parent.path !, name !]; +export function controlPath(name: string, parent: ControlContainer): string[] { + return [...parent.path !, name]; } export function setUpControl(control: FormControl, dir: NgControl): void { diff --git a/tools/public_api_guard/forms/forms.d.ts b/tools/public_api_guard/forms/forms.d.ts index 2b791597ae..577885628b 100644 --- a/tools/public_api_guard/forms/forms.d.ts +++ b/tools/public_api_guard/forms/forms.d.ts @@ -255,7 +255,7 @@ export declare class FormControlName extends NgControl implements OnChanges, OnD readonly formDirective: any; isDisabled: boolean; /** @deprecated */ model: any; - name: string | number | null; + name: string; readonly path: string[]; /** @deprecated */ update: EventEmitter; readonly validator: ValidatorFn | null; @@ -353,7 +353,7 @@ export declare const NG_VALUE_ACCESSOR: InjectionToken; export declare abstract class NgControl extends AbstractControlDirective { readonly asyncValidator: AsyncValidatorFn | null; - name: string | number | null; + name: string | null; readonly validator: ValidatorFn | null; valueAccessor: ControlValueAccessor | null; abstract viewToModelUpdate(newValue: any): void;