5 lines
62 KiB
JSON

{
"id": "api/forms/FormArray",
"title": "FormArray",
"contents": "\n\n<article>\n <div class=\"breadcrumb-container\">\n <div class=\"breadcrumb\">\n <script type=\"application/ld+json\">\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"BreadcrumbList\",\n \"itemListElement\": [\n { \"@type\": \"ListItem\", \"position\": 1, \"item\": { \"@id\": \"https://angular.io//api\", \"name\": \"API\" } },\n { \"@type\": \"ListItem\", \"position\": 2, \"item\": { \"@id\": \"https://angular.io/api/forms\", \"name\": \"@angular/forms\" } },\n { \"@type\": \"ListItem\", \"position\": 3, \"item\": { \"@id\": \"https://angular.io/api/forms/FormArray\", \"name\": \"FormArray\" } }\n ]\n }\n </script>\n <a href=\"/api\">API</a> > <a href=\"api/forms\">@angular/forms</a>\n </div>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1797-L2253\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1797-L2253\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n \n <header class=\"api-header\">\n <h1 id=\"formarray\">FormArray<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#formarray\"><i class=\"material-icons\">link</i></a></h1>\n \n <label class=\"api-type-label class\">class</label>\n \n \n \n </header>\n \n <aio-toc class=\"embedded\"></aio-toc>\n\n <div class=\"api-body\">\n \n <section class=\"short-description\">\n <p>Tracks the value and validity state of an array of <code><a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a></code>,\n<code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code> or <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> instances.</p>\n\n <p><a href=\"api/forms/FormArray#description\">See more...</a></p>\n </section>\n \n \n \n <section class=\"class-overview\">\n<code-example language=\"ts\" hidecopy=\"true\">\nclass <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a> extends <a class=\"code-anchor\" href=\"api/forms/AbstractControl\">AbstractControl</a> {\n <a class=\"code-anchor\" href=\"api/forms/FormArray#constructor()\"><span class=\"member-name\">constructor</span>(controls: AbstractControl[], validatorOrOpts?: ValidatorFn | AbstractControlOptions | ValidatorFn[], asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[])</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#controls\"><span class=\"member-name\">controls</span>: AbstractControl[]</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#length\"><span class=\"member-name\">length</span>: number</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#at\"><span class=\"member-name\">at</span>(index: number): AbstractControl</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#push\"><span class=\"member-name\">push</span>(control: AbstractControl, options: { emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#insert\"><span class=\"member-name\">insert</span>(index: number, control: AbstractControl, options: { emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#removeAt\"><span class=\"member-name\">removeAt</span>(index: number, options: { emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#setControl\"><span class=\"member-name\">setControl</span>(index: number, control: AbstractControl, options: { emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#setValue\"><span class=\"member-name\">setValue</span>(value: any[], options: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#patchValue\"><span class=\"member-name\">patchValue</span>(value: any[], options: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#reset\"><span class=\"member-name\">reset</span>(value: any = [], options: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#getRawValue\"><span class=\"member-name\">getRawValue</span>(): any[]</a>\n <a class=\"code-anchor\" href=\"api/forms/FormArray#clear\"><span class=\"member-name\">clear</span>(options: { emitEvent?: boolean; } = {}): void</a>\n\n // inherited from <a class=\"code-anchor\" href=\"api/forms/AbstractControl\">forms/AbstractControl</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#constructor()\"><span class=\"member-name\">constructor</span>(validators: ValidatorFn | ValidatorFn[], asyncValidators: AsyncValidatorFn | AsyncValidatorFn[])</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#value\"><span class=\"member-name\">value</span>: any</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#validator\"><span class=\"member-name\">validator</span>: ValidatorFn | null</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#asyncValidator\"><span class=\"member-name\">asyncValidator</span>: AsyncValidatorFn | null</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#parent\"><span class=\"member-name\">parent</span>: FormGroup | FormArray | null</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#status\"><span class=\"member-name\">status</span>: string</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#valid\"><span class=\"member-name\">valid</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#invalid\"><span class=\"member-name\">invalid</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#pending\"><span class=\"member-name\">pending</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#disabled\"><span class=\"member-name\">disabled</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#enabled\"><span class=\"member-name\">enabled</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#errors\"><span class=\"member-name\">errors</span>: ValidationErrors | null</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#pristine\"><span class=\"member-name\">pristine</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#dirty\"><span class=\"member-name\">dirty</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#touched\"><span class=\"member-name\">touched</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#untouched\"><span class=\"member-name\">untouched</span>: boolean</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#valueChanges\"><span class=\"member-name\">valueChanges</span>: Observable&#x3C;any></a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#statusChanges\"><span class=\"member-name\">statusChanges</span>: Observable&#x3C;any></a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#updateOn\"><span class=\"member-name\">updateOn</span>: FormHooks</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#root\"><span class=\"member-name\">root</span>: AbstractControl</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#setValidators\"><span class=\"member-name\">setValidators</span>(newValidator: ValidatorFn | ValidatorFn[]): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#setAsyncValidators\"><span class=\"member-name\">setAsyncValidators</span>(newValidator: AsyncValidatorFn | AsyncValidatorFn[]): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#clearValidators\"><span class=\"member-name\">clearValidators</span>(): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#clearAsyncValidators\"><span class=\"member-name\">clearAsyncValidators</span>(): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#markAsTouched\"><span class=\"member-name\">markAsTouched</span>(opts: { onlySelf?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#markAllAsTouched\"><span class=\"member-name\">markAllAsTouched</span>(): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#markAsUntouched\"><span class=\"member-name\">markAsUntouched</span>(opts: { onlySelf?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#markAsDirty\"><span class=\"member-name\">markAsDirty</span>(opts: { onlySelf?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#markAsPristine\"><span class=\"member-name\">markAsPristine</span>(opts: { onlySelf?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#markAsPending\"><span class=\"member-name\">markAsPending</span>(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#disable\"><span class=\"member-name\">disable</span>(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#enable\"><span class=\"member-name\">enable</span>(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#setParent\"><span class=\"member-name\">setParent</span>(parent: FormGroup | FormArray): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#setValue\">abstract <span class=\"member-name\">setValue</span>(value: any, options?: Object): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#patchValue\">abstract <span class=\"member-name\">patchValue</span>(value: any, options?: Object): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#reset\">abstract <span class=\"member-name\">reset</span>(value?: any, options?: Object): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#updateValueAndValidity\"><span class=\"member-name\">updateValueAndValidity</span>(opts: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#setErrors\"><span class=\"member-name\">setErrors</span>(errors: ValidationErrors, opts: { emitEvent?: boolean; } = {}): void</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#get\"><span class=\"member-name\">get</span>(path: string | (string | number)[]): AbstractControl | null</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#getError\"><span class=\"member-name\">getError</span>(errorCode: string, path?: string | (string | number)[]): any</a>\n <a class=\"code-anchor\" href=\"api/forms/AbstractControl#hasError\"><span class=\"member-name\">hasError</span>(errorCode: string, path?: string | (string | number)[]): boolean</a>\n}\n</code-example>\n\n \n \n\n</section>\n\n\n \n\n \n \n<section class=\"description\">\n <h2 id=\"description\">Description<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#description\"><i class=\"material-icons\">link</i></a></h2>\n <p>A <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> aggregates the values of each child <code><a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a></code> into an array.\nIt calculates its status by reducing the status values of its children. For example, if one of\nthe controls in a <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> is invalid, the entire array becomes invalid.</p>\n<p><code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> is one of the three fundamental building blocks used to define forms in Angular,\nalong with <code><a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a></code> and <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code>.</p>\n\n <p>Further information available in the <a href=\"api/forms/FormArray#usage-notes\">Usage Notes</a>...</p>\n</section>\n\n \n\n\n\n\n\n\n<h2 id=\"constructor\">Constructor<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#constructor\"><i class=\"material-icons\">link</i></a></h2>\n<a id=\"constructor()\"></a>\n<table class=\"is-full-width method-table constructor\">\n \n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Creates a new <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> instance.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">constructor</span>(controls: <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>[], validatorOrOpts?: <a href=\"api/forms/ValidatorFn\" class=\"code-anchor\">ValidatorFn</a> | <a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a> | <a href=\"api/forms/ValidatorFn\" class=\"code-anchor\">ValidatorFn</a>[], asyncValidator?: <a href=\"api/forms/AsyncValidatorFn\" class=\"code-anchor\">AsyncValidatorFn</a> | <a href=\"api/forms/AsyncValidatorFn\" class=\"code-anchor\">AsyncValidatorFn</a>[])</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table constructor-overload-parameters\">\n <tbody>\n \n <tr class=\"constructor-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>controls</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>[]</code></td>\n <td class=\"param-description\">\n <p>An array of child controls. Each child control is given an index\nwhere it is registered.</p>\n\n </td>\n </tr>\n <tr class=\"constructor-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>validatorOrOpts</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/forms/ValidatorFn\" class=\"code-anchor\">ValidatorFn</a> | <a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a> | <a href=\"api/forms/ValidatorFn\" class=\"code-anchor\">ValidatorFn</a>[]</code></td>\n <td class=\"param-description\">\n <p>A synchronous validator function, or an array of\nsuch functions, or an <code><a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a></code> object that contains validation functions\nand a validation trigger.</p>\n<p> Optional. Default is <code>undefined</code>.</p>\n\n </td>\n </tr>\n <tr class=\"constructor-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>asyncValidator</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/forms/AsyncValidatorFn\" class=\"code-anchor\">AsyncValidatorFn</a> | <a href=\"api/forms/AsyncValidatorFn\" class=\"code-anchor\">AsyncValidatorFn</a>[]</code></td>\n <td class=\"param-description\">\n <p>A single async validator or array of async validator functions</p>\n<p> Optional. Default is <code>undefined</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n \n </tbody>\n</table>\n\n\n\n\n<section class=\"instance-properties\">\n <h2 id=\"properties\">Properties<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#properties\"><i class=\"material-icons\">link</i></a></h2>\n <table class=\"is-full-width list-table property-table\">\n <thead>\n <tr>\n <th>Property</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n \n <tr class=\"instance-property\">\n <td>\n <a id=\"controls\"></a>\n <code class=\"\"><span class=\"member-name\">controls</span>: <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>[]</code>\n </td>\n <td>\n <span class=\"from-constructor\">Declared in Constructor</span>\n \n <p>An array of child controls. Each child control is given an index\nwhere it is registered.</p>\n\n </td>\n </tr>\n \n <tr class=\"instance-property\">\n <td>\n <a id=\"length\"></a>\n <code class=\"\"><span class=\"member-name\">length</span>: number</code>\n </td>\n <td><span class=\"read-only-property\">Read-Only</span>\n \n <p>Length of the control array.</p>\n\n \n </td>\n </tr>\n \n </tbody>\n </table>\n</section>\n\n\n\n<section class=\"instance-methods\">\n <h2 id=\"methods\">Methods<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#methods\"><i class=\"material-icons\">link</i></a></h2>\n \n <a id=\"at\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"at\">\n at()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#at\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1893-L1901\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1893-L1901\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Get the <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> at the given <code>index</code> in the array.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">at</span>(index: number): <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-1\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>index</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/common/DecimalPipe\" class=\"code-anchor\">number</a></code></td>\n <td class=\"param-description\">\n <p>Index in the array to retrieve the control</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns\">Returns</h6>\n <p><code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n \n </tbody>\n</table>\n\n \n <a id=\"push\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"push\">\n push()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#push\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1902-L1918\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1902-L1918\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Insert a new <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> at the end of the array.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">push</span>(control: <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>, options: { emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-2\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>control</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code></td>\n <td class=\"param-description\">\n <p>Form control to be inserted</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Specifies whether this FormArray instance should emit events after a new\ncontrol is added.</p>\n<ul>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code> observables emit events with the latest status and value when the control is\ninserted. When false, no events are emitted.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-1\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n \n </tbody>\n</table>\n\n \n <a id=\"insert\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"insert\">\n insert()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#insert\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1919-L1936\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1919-L1936\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Insert a new <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> at the given <code>index</code> in the array.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">insert</span>(index: number, control: <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>, options: { emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-3\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>index</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/common/DecimalPipe\" class=\"code-anchor\">number</a></code></td>\n <td class=\"param-description\">\n <p>Index in the array to insert the control</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>control</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code></td>\n <td class=\"param-description\">\n <p>Form control to be inserted</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Specifies whether this FormArray instance should emit events after a new\ncontrol is inserted.</p>\n<ul>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code> observables emit events with the latest status and value when the control is\ninserted. When false, no events are emitted.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-2\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n \n </tbody>\n</table>\n\n \n <a id=\"removeAt\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"removeat\">\n removeAt()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#removeat\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1937-L1952\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1937-L1952\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Remove the control at the given <code>index</code> in the array.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">removeAt</span>(index: number, options: { emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-4\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>index</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/common/DecimalPipe\" class=\"code-anchor\">number</a></code></td>\n <td class=\"param-description\">\n <p>Index in the array to remove the control</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Specifies whether this FormArray instance should emit events after a\ncontrol is removed.</p>\n<ul>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code> observables emit events with the latest status and value when the control is\nremoved. When false, no events are emitted.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-3\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n \n </tbody>\n</table>\n\n \n <a id=\"setControl\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"setcontrol\">\n setControl()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#setcontrol\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1953-L1976\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1953-L1976\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Replace an existing control.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">setControl</span>(index: number, control: <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>, options: { emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-5\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>index</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/common/DecimalPipe\" class=\"code-anchor\">number</a></code></td>\n <td class=\"param-description\">\n <p>Index in the array to replace the control</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>control</code>\n </td>\n <td class=\"param-type\"><code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code></td>\n <td class=\"param-description\">\n <p>The <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> control to replace the existing control</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Specifies whether this FormArray instance should emit events after an\nexisting control is replaced with a new one.</p>\n<ul>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code> observables emit events with the latest status and value when the control is\nreplaced with a new one. When false, no events are emitted.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-4\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n \n </tbody>\n</table>\n\n \n <a id=\"setValue\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"setvalue\">\n setValue()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#setvalue\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1984-L2027\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1984-L2027\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Sets the value of the <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code>. It accepts an array that matches\nthe structure of the control.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">setValue</span>(value: any[], options: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-6\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>value</code>\n </td>\n <td class=\"param-type\"><code>any[]</code></td>\n <td class=\"param-description\">\n <p>Array of values for the controls</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Configure options that determine how the control propagates changes and\nemits events after the value changes</p>\n<ul>\n<li><code>onlySelf</code>: When true, each change only affects this control, and not its parent. Default\nis false.</li>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code>\nobservables emit events with the latest status and value when the control value is updated.\nWhen false, no events are emitted.\nThe configuration options are passed to the <a href=\"api/forms/AbstractControl#updateValueAndValidity\">updateValueAndValidity</a> method.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-5\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n <tr>\n <td class=\"description\">\n <p>This method performs strict checks, and throws an error if you try\nto set the value of a control that doesn't exist or if you exclude the\nvalue of a control.</p>\n\n </td>\n </tr>\n\n <tr>\n <td class=\"usage-notes\">\n <h4 id=\"setValue-usage-notes\">Usage Notes<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#setValue-usage-notes\"><i class=\"material-icons\">link</i></a></h4>\n <h5 id=\"set-the-values-for-the-controls-in-the-form-array\">Set the values for the controls in the form array<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#set-the-values-for-the-controls-in-the-form-array\"><i class=\"material-icons\">link</i></a></h5>\n<code-example>\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>(),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>()\n]);\nconsole.log(arr.value); // [null, null]\n\narr.setValue(['Nancy', 'Drew']);\nconsole.log(arr.value); // ['Nancy', 'Drew']\n</code-example>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <a id=\"patchValue\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"patchvalue\">\n patchValue()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#patchvalue\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2028-L2074\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2028-L2074\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Patches the value of the <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code>. It accepts an array that matches the\nstructure of the control, and does its best to match the values to the correct\ncontrols in the group.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">patchValue</span>(value: any[], options: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-7\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>value</code>\n </td>\n <td class=\"param-type\"><code>any[]</code></td>\n <td class=\"param-description\">\n <p>Array of latest values for the controls</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Configure options that determine how the control propagates changes and\nemits events after the value changes</p>\n<ul>\n<li><code>onlySelf</code>: When true, each change only affects this control, and not its parent. Default\nis false.</li>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code> observables emit events with the latest status and value when the control value\nis updated. When false, no events are emitted. The configuration options are passed to\nthe <a href=\"api/forms/AbstractControl#updateValueAndValidity\">updateValueAndValidity</a> method.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-6\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n <tr>\n <td class=\"description\">\n <p>It accepts both super-sets and sub-sets of the array without throwing an error.</p>\n\n </td>\n </tr>\n\n <tr>\n <td class=\"usage-notes\">\n <h4 id=\"patchValue-usage-notes\">Usage Notes<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#patchValue-usage-notes\"><i class=\"material-icons\">link</i></a></h4>\n <h5 id=\"patch-the-values-for-controls-in-a-form-array\">Patch the values for controls in a form array<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#patch-the-values-for-controls-in-a-form-array\"><i class=\"material-icons\">link</i></a></h5>\n<code-example>\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>(),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>()\n]);\nconsole.log(arr.value); // [null, null]\n\narr.patchValue(['Nancy']);\nconsole.log(arr.value); // ['Nancy', null]\n</code-example>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <a id=\"reset\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"reset\">\n reset()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#reset\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2075-L2129\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2075-L2129\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Resets the <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> and all descendants are marked <code>pristine</code> and <code>untouched</code>, and the\nvalue of all descendants to null or null maps.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">reset</span>(value: any = [], options: { onlySelf?: boolean; emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-8\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>value</code>\n </td>\n <td class=\"param-type\"><code>any</code></td>\n <td class=\"param-description\">\n <p>Array of values for the controls</p>\n<p> Optional. Default is <code>[]</code>.</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Configure options that determine how the control propagates changes and\nemits events after the value changes</p>\n<ul>\n<li><code>onlySelf</code>: When true, each change only affects this control, and not its parent. Default\nis false.</li>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code>\nobservables emit events with the latest status and value when the control is reset.\nWhen false, no events are emitted.\nThe configuration options are passed to the <a href=\"api/forms/AbstractControl#updateValueAndValidity\">updateValueAndValidity</a> method.\n</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-7\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n <tr>\n <td class=\"description\">\n <p>You reset to a specific form state by passing in an array of states\nthat matches the structure of the control. The state is a standalone value\nor a form state object with both a value and a disabled status.</p>\n\n </td>\n </tr>\n\n <tr>\n <td class=\"usage-notes\">\n <h4 id=\"reset-usage-notes\">Usage Notes<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#reset-usage-notes\"><i class=\"material-icons\">link</i></a></h4>\n <h5 id=\"reset-the-values-in-a-form-array\">Reset the values in a form array<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#reset-the-values-in-a-form-array\"><i class=\"material-icons\">link</i></a></h5>\n<code-example language=\"ts\">\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>(),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>()\n]);\narr.reset(['name', 'last name']);\n\nconsole.log(this.arr.value); // ['name', 'last name']\n</code-example>\n<h5 id=\"reset-the-values-in-a-form-array-and-the-disabled-status-for-the-first-control\">Reset the values in a form array and the disabled status for the first control<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#reset-the-values-in-a-form-array-and-the-disabled-status-for-the-first-control\"><i class=\"material-icons\">link</i></a></h5>\n<code-example>\nthis.arr.reset([\n {value: 'name', disabled: true},\n 'last'\n]);\n\nconsole.log(this.arr.value); // ['name', 'last name']\nconsole.log(this.arr.get(0).status); // 'DISABLED'\n</code-example>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <a id=\"getRawValue\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"getrawvalue\">\n getRawValue()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#getrawvalue\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2130-L2141\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2130-L2141\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>The aggregate value of the array, including any disabled controls.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">getRawValue</span>(): any[]</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-9\">Parameters</h6>\n <p>There are no parameters.</p>\n\n \n <h6 class=\"no-anchor\" id=\"returns-8\">Returns</h6>\n <p><code>any[]</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n <tr>\n <td class=\"description\">\n <p>Reports all values regardless of disabled status.\nFor enabled controls only, the <code>value</code> property is the best way to get the value of the array.</p>\n\n </td>\n </tr>\n\n \n </tbody>\n</table>\n\n \n <a id=\"clear\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"clear\">\n clear()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#clear\"><i class=\"material-icons\">link</i></a></h3>\n <div class=\"github-links\">\n <a href=\"https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2142-L2184\" aria-label=\"Suggest Edits\" title=\"Suggest Edits\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">mode_edit</i></a>\n <a href=\"https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2142-L2184\" aria-label=\"View Source\" title=\"View Source\"><i class=\"material-icons\" aria-hidden=\"true\" role=\"img\">code</i></a>\n</div>\n </div>\n </th></tr></thead>\n <tbody>\n <tr>\n <td class=\"short-description\">\n <p>Remove all controls in the <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code>.</p>\n\n </td>\n </tr>\n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\">clear</span>(options: { emitEvent?: boolean; } = {}): void</code-example>\n\n \n\n <h6 class=\"no-anchor\" id=\"parameters-10\">Parameters</h6>\n <table class=\"is-full-width list-table parameters-table instance-method-overload-parameters\">\n <tbody>\n \n <tr class=\"instance-method-overload-parameter\">\n <td class=\"param-name\">\n <a id=\"\"></a>\n <code>options</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>Specifies whether this FormArray instance should emit events after all\ncontrols are removed.</p>\n<ul>\n<li><code>emitEvent</code>: When true or not supplied (the default), both the <code>statusChanges</code> and\n<code>valueChanges</code> observables emit events with the latest status and value when all controls\nin this FormArray instance are removed. When false, no events are emitted.</li>\n</ul>\n<p> Optional. Default is <code>{}</code>.</p>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-9\">Returns</h6>\n <p><code>void</code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n \n\n \n\n <tr>\n <td class=\"usage-notes\">\n <h4 id=\"clear-usage-notes\">Usage Notes<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#clear-usage-notes\"><i class=\"material-icons\">link</i></a></h4>\n <h5 id=\"remove-all-elements-from-a-formarray\">Remove all elements from a FormArray<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#remove-all-elements-from-a-formarray\"><i class=\"material-icons\">link</i></a></h5>\n<code-example language=\"ts\">\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>(),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>()\n]);\nconsole.log(arr.length); // 2\n\narr.clear();\nconsole.log(arr.length); // 0\n</code-example>\n<p>It's a simpler and more efficient alternative to removing all elements one by one:</p>\n<code-example language=\"ts\">\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>(),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>()\n]);\n\nwhile (arr.length) {\n arr.removeAt(0);\n}\n</code-example>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n</section>\n\n\n\n \n<section class=\"usage-notes\">\n <h2 id=\"usage-notes\">Usage notes<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#usage-notes\"><i class=\"material-icons\">link</i></a></h2>\n <h3 id=\"create-an-array-of-form-controls\">Create an array of form controls<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#create-an-array-of-form-controls\"><i class=\"material-icons\">link</i></a></h3>\n<code-example>\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>('Nancy', Validators.minLength(2)),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>('Drew'),\n]);\n\nconsole.log(arr.value); // ['Nancy', 'Drew']\nconsole.log(arr.status); // 'VALID'\n</code-example>\n<h3 id=\"create-a-form-array-with-array-level-validators\">Create a form array with array-level validators<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#create-a-form-array-with-array-level-validators\"><i class=\"material-icons\">link</i></a></h3>\n<p>You include array-level validators and async validators. These come in handy\nwhen you want to perform validation that considers the value of more than one child\ncontrol.</p>\n<p>The two types of validators are passed in separately as the second and third arg\nrespectively, or together as part of an options object.</p>\n<code-example>\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>('Nancy'),\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>('Drew')\n], {validators: myValidator, asyncValidators: myAsyncValidator});\n</code-example>\n<h3 id=\"set-the-updateon-property-for-all-controls-in-a-form-array\">Set the updateOn property for all controls in a form array<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#set-the-updateon-property-for-all-controls-in-a-form-array\"><i class=\"material-icons\">link</i></a></h3>\n<p>The options object is used to set a default value for each child\ncontrol's <code>updateOn</code> property. If you set <code>updateOn</code> to <code>'blur'</code> at the\narray level, all child controls default to 'blur', unless the child\nhas explicitly specified a different <code>updateOn</code> value.</p>\n<code-example language=\"ts\">\nconst arr = new <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a>([\n new <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>()\n], {updateOn: 'blur'});\n</code-example>\n<h3 id=\"adding-or-removing-controls-from-a-form-array\">Adding or removing controls from a form array<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormArray#adding-or-removing-controls-from-a-form-array\"><i class=\"material-icons\">link</i></a></h3>\n<p>To change the controls in the array, use the <code>push</code>, <code>insert</code>, <code>removeAt</code> or <code>clear</code> methods\nin <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> itself. These methods ensure the controls are properly tracked in the\nform's hierarchy. Do not modify the array of <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code>s used to instantiate\nthe <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> directly, as that result in strange and unexpected behavior such\nas broken change detection.</p>\n\n</section>\n\n\n\n </div>\n</article>\n\n<!-- links to this doc:\n - api/forms\n - api/forms/AbstractControl\n - api/forms/FormArrayName\n - api/forms/FormBuilder\n - api/forms/FormControl\n - api/forms/FormControlName\n - api/forms/FormGroup\n - api/forms/FormGroupDirective\n - api/forms/FormGroupName\n - api/forms/RadioControlValueAccessor\n - api/forms/ReactiveFormsModule\n - guide/dynamic-form\n - guide/forms-overview\n - guide/glossary\n - guide/reactive-forms\n-->\n<!-- links from this doc:\n - /api\n - api/common/DecimalPipe\n - api/forms\n - api/forms/AbstractControl\n - api/forms/AbstractControl#asyncValidator\n - api/forms/AbstractControl#clearAsyncValidators\n - api/forms/AbstractControl#clearValidators\n - api/forms/AbstractControl#constructor()\n - api/forms/AbstractControl#dirty\n - api/forms/AbstractControl#disable\n - api/forms/AbstractControl#disabled\n - api/forms/AbstractControl#enable\n - api/forms/AbstractControl#enabled\n - api/forms/AbstractControl#errors\n - api/forms/AbstractControl#get\n - api/forms/AbstractControl#getError\n - api/forms/AbstractControl#hasError\n - api/forms/AbstractControl#invalid\n - api/forms/AbstractControl#markAllAsTouched\n - api/forms/AbstractControl#markAsDirty\n - api/forms/AbstractControl#markAsPending\n - api/forms/AbstractControl#markAsPristine\n - api/forms/AbstractControl#markAsTouched\n - api/forms/AbstractControl#markAsUntouched\n - api/forms/AbstractControl#parent\n - api/forms/AbstractControl#patchValue\n - api/forms/AbstractControl#pending\n - api/forms/AbstractControl#pristine\n - api/forms/AbstractControl#reset\n - api/forms/AbstractControl#root\n - api/forms/AbstractControl#setAsyncValidators\n - api/forms/AbstractControl#setErrors\n - api/forms/AbstractControl#setParent\n - api/forms/AbstractControl#setValidators\n - api/forms/AbstractControl#setValue\n - api/forms/AbstractControl#status\n - api/forms/AbstractControl#statusChanges\n - api/forms/AbstractControl#touched\n - api/forms/AbstractControl#untouched\n - api/forms/AbstractControl#updateOn\n - api/forms/AbstractControl#updateValueAndValidity\n - api/forms/AbstractControl#valid\n - api/forms/AbstractControl#validator\n - api/forms/AbstractControl#value\n - api/forms/AbstractControl#valueChanges\n - api/forms/AbstractControlOptions\n - api/forms/AsyncValidatorFn\n - api/forms/FormArray#adding-or-removing-controls-from-a-form-array\n - api/forms/FormArray#at\n - api/forms/FormArray#clear\n - api/forms/FormArray#clear-usage-notes\n - api/forms/FormArray#constructor\n - api/forms/FormArray#constructor()\n - api/forms/FormArray#controls\n - api/forms/FormArray#create-a-form-array-with-array-level-validators\n - api/forms/FormArray#create-an-array-of-form-controls\n - api/forms/FormArray#description\n - api/forms/FormArray#formarray\n - api/forms/FormArray#getRawValue\n - api/forms/FormArray#getrawvalue\n - api/forms/FormArray#insert\n - api/forms/FormArray#length\n - api/forms/FormArray#methods\n - api/forms/FormArray#patch-the-values-for-controls-in-a-form-array\n - api/forms/FormArray#patchValue\n - api/forms/FormArray#patchValue-usage-notes\n - api/forms/FormArray#patchvalue\n - api/forms/FormArray#properties\n - api/forms/FormArray#push\n - api/forms/FormArray#remove-all-elements-from-a-formarray\n - api/forms/FormArray#removeAt\n - api/forms/FormArray#removeat\n - api/forms/FormArray#reset\n - api/forms/FormArray#reset-the-values-in-a-form-array\n - api/forms/FormArray#reset-the-values-in-a-form-array-and-the-disabled-status-for-the-first-control\n - api/forms/FormArray#reset-usage-notes\n - api/forms/FormArray#set-the-updateon-property-for-all-controls-in-a-form-array\n - api/forms/FormArray#set-the-values-for-the-controls-in-the-form-array\n - api/forms/FormArray#setControl\n - api/forms/FormArray#setValue\n - api/forms/FormArray#setValue-usage-notes\n - api/forms/FormArray#setcontrol\n - api/forms/FormArray#setvalue\n - api/forms/FormArray#usage-notes\n - api/forms/FormControl\n - api/forms/FormGroup\n - api/forms/ValidatorFn\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1797-L2253\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1893-L1901\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1902-L1918\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1919-L1936\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1937-L1952\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1953-L1976\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L1984-L2027\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2028-L2074\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2075-L2129\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2130-L2141\n - https://github.com/angular/angular/edit/master/packages/forms/src/model.ts?message=docs(forms)%3A%20describe%20your%20change...#L2142-L2184\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1797-L2253\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1893-L1901\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1902-L1918\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1919-L1936\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1937-L1952\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1953-L1976\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L1984-L2027\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2028-L2074\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2075-L2129\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2130-L2141\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/model.ts#L2142-L2184\n-->"
}