5 lines
24 KiB
JSON

{
"id": "api/forms/FormBuilder",
"title": "FormBuilder",
"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/FormBuilder\", \"name\": \"FormBuilder\" } }\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/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L21-L182\" 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/form_builder.ts#L21-L182\" 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=\"formbuilder\">FormBuilder<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#formbuilder\"><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>Creates an <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> from a user-specified configuration.</p>\n\n <p><a href=\"api/forms/FormBuilder#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/FormBuilder\" class=\"code-anchor\">FormBuilder</a> {\n <a class=\"code-anchor\" href=\"api/forms/FormBuilder#group\"><span class=\"member-name\">group</span>(controlsConfig: { [key: string]: any; }, options: AbstractControlOptions | { [key: string]: any; } = null): FormGroup</a>\n <a class=\"code-anchor\" href=\"api/forms/FormBuilder#control\"><span class=\"member-name\">control</span>(formState: any, validatorOrOpts?: ValidatorFn | AbstractControlOptions | ValidatorFn[], asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[]): FormControl</a>\n <a class=\"code-anchor\" href=\"api/forms/FormBuilder#array\"><span class=\"member-name\">array</span>(controlsConfig: any[], validatorOrOpts?: ValidatorFn | AbstractControlOptions | ValidatorFn[], asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[]): FormArray</a>\n}\n</code-example>\n\n \n \n\n</section>\n\n\n \n<section class=\"see-also\">\n <h2 id=\"see-also\">See also<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#see-also\"><i class=\"material-icons\">link</i></a></h2>\n <ul>\n \n <li><p><a href=\"/guide/reactive-forms\">Reactive Forms Guide</a></p>\n</li>\n </ul>\n</section>\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/FormBuilder#description\"><i class=\"material-icons\">link</i></a></h2>\n <p>The <code><a href=\"api/forms/FormBuilder\" class=\"code-anchor\">FormBuilder</a></code> provides syntactic sugar that shortens creating instances of a <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>. It reduces the amount of boilerplate needed to build complex\nforms.</p>\n\n \n</section>\n\n \n\n\n\n\n\n\n\n\n\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/FormBuilder#methods\"><i class=\"material-icons\">link</i></a></h2>\n \n <a id=\"group\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"group\">\n group()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#group\"><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/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L81-L104\" 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/form_builder.ts#L81-L104\" 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 \n \n <tr>\n <td>\n <div class=\"overload-info\">\n \n <div class=\"short-description\">\n <p>Construct a new <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code> instance.</p>\n\n </div>\n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading\"><span class=\"member-name\"><a href=\"api/animations/group\" class=\"code-anchor\">group</a></span>(controlsConfig: { [key: string]: any; }, options?: <a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a>): <a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</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 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>controlsConfig</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>A collection of child controls. The key for each child is the name\nunder which it is registered.</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><a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a></code></td>\n <td class=\"param-description\">\n <p>Configuration options object for the <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code>. The object should have the\nthe <code><a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a></code> type and might contain the following fields:</p>\n<ul>\n<li><code>validators</code>: A synchronous validator function, or an array of validator functions</li>\n<li><code>asyncValidators</code>: A single async validator or array of async validator functions</li>\n<li><code>updateOn</code>: The event upon which the control should be updated (options: 'change' | 'blur' |\nsubmit')\n</li>\n</ul>\n<p> Optional. Default is <code>undefined</code>.</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/FormGroup\" class=\"code-anchor\">FormGroup</a></code></p>\n\n \n\n\n \n\n \n</div>\n </td>\n </tr>\n <tr>\n <td>\n <div class=\"overload-info\">\n \n <div class=\"short-description\">\n <p>Construct a new <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code> instance.</p>\n\n </div>\n\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box api-heading deprecated-api-item\"><span class=\"member-name\"><a href=\"api/animations/group\" class=\"code-anchor\">group</a></span>(controlsConfig: { [key: string]: any; }, options: { [key: string]: any; }): <a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code-example>\n\n \n <div class=\"deprecated\">\n <p><strong>Deprecated</strong> This API is not typesafe and can result in issues with Closure Compiler renaming.\nUse the <code><a href=\"api/forms/FormBuilder\" class=\"code-anchor\">FormBuilder</a>#group</code> overload with <code><a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a></code> instead.\nNote that <code><a href=\"api/forms/AbstractControlOptions\" class=\"code-anchor\">AbstractControlOptions</a></code> expects <code>validators</code> and <code>asyncValidators</code> to be valid\nvalidators. If you have custom validators, make sure their validation function parameter is\n<code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> and not a sub-class, such as <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code>. These functions will be called with\nan object of type <code><a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a></code> and that cannot be automatically downcast to a subclass, so\nTypeScript sees this as an error. For example, change the <code>(group: <a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a>) => <a href=\"api/forms/ValidationErrors\" class=\"code-anchor\">ValidationErrors</a>|null</code> signature to be <code>(group: <a href=\"api/forms/AbstractControl\" class=\"code-anchor\">AbstractControl</a>) => <a href=\"api/forms/ValidationErrors\" class=\"code-anchor\">ValidationErrors</a>|null</code>.</p>\n\n </div>\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>controlsConfig</code>\n </td>\n <td class=\"param-type\"><code>object</code></td>\n <td class=\"param-description\">\n <p>A collection of child controls. The key for each child is the name\nunder which it is registered.</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>Configuration options object for the <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code>. The legacy configuration\nobject consists of:</p>\n<ul>\n<li><code>validator</code>: A synchronous validator function, or an array of validator functions</li>\n<li><code>asyncValidator</code>: A single async validator or array of async validator functions\nNote: the legacy format is deprecated and might be removed in one of the next major versions\nof Angular.</li>\n</ul>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <h6 class=\"no-anchor\" id=\"returns-1\">Returns</h6>\n <p><code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</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=\"control\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"control\">\n control()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#control\"><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/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L105-L133\" 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/form_builder.ts#L105-L133\" 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>Construct a new <code><a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a></code> with the given state, validators and options.</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\">control</span>(formState: any, 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>[]): <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a></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>formState</code>\n </td>\n <td class=\"param-type\"><code>any</code></td>\n <td class=\"param-description\">\n <p>Initializes the control with an initial state value, or\nwith an object that contains both a value and a disabled status.</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-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\nvalidation functions and a validation trigger.</p>\n<p> Optional. Default is <code>undefined</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>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\nfunctions.</p>\n<p> Optional. Default is <code>undefined</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><a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a></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=\"control-usage-notes\">Usage Notes<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#control-usage-notes\"><i class=\"material-icons\">link</i></a></h4>\n <h5 id=\"initialize-a-control-as-disabled\">Initialize a control as disabled<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#initialize-a-control-as-disabled\"><i class=\"material-icons\">link</i></a></h5>\n<p>The following example returns a control with an initial value in a disabled state.</p>\n<code-example path=\"forms/ts/formBuilder/form_builder_example.ts\" region=\"disabled-control\">\nimport {<a href=\"api/core/Component\" class=\"code-anchor\">Component</a>, <a href=\"api/core/Inject\" class=\"code-anchor\">Inject</a>} from '@angular/core';\nimport {<a href=\"api/forms/FormBuilder\" class=\"code-anchor\">FormBuilder</a>, <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>, <a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a>, <a href=\"api/forms/Validators\" class=\"code-anchor\">Validators</a>} from '@angular/forms';\n/* . . . */\n@<a href=\"api/core/Component\" class=\"code-anchor\">Component</a>({\n selector: 'app-disabled-form-control',\n template: `\n &#x3C;input [formControl]=\"control\" placeholder=\"First\">\n `\n})\nexport class DisabledFormControlComponent {\n control: <a href=\"api/forms/FormControl\" class=\"code-anchor\">FormControl</a>;\n\n constructor(private fb: <a href=\"api/forms/FormBuilder\" class=\"code-anchor\">FormBuilder</a>) {\n this.control = fb.control({value: 'my val', disabled: true});\n }\n}\n\n</code-example>\n\n </td>\n </tr>\n </tbody>\n</table>\n\n \n <a id=\"array\"></a>\n<table class=\"is-full-width method-table instance-method\">\n <thead><tr><th>\n <div class=\"with-github-links\">\n <h3 id=\"array\">\n array()\n \n <a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/FormBuilder#array\"><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/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L134-L155\" 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/form_builder.ts#L134-L155\" 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>Constructs a new <code><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></code> from the given array of configurations,\nvalidators and options.</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\">array</span>(controlsConfig: any[], 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>[]): <a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</a></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>controlsConfig</code>\n </td>\n <td class=\"param-type\"><code>any[]</code></td>\n <td class=\"param-description\">\n <p>An array of child controls or control configs. Each\nchild control is given an index when it is registered.</p>\n\n </td>\n </tr>\n <tr class=\"instance-method-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\nvalidation functions and a validation trigger.</p>\n<p> Optional. Default is <code>undefined</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>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\nfunctions.</p>\n<p> Optional. Default is <code>undefined</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><a href=\"api/forms/FormArray\" class=\"code-anchor\">FormArray</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</section>\n\n\n\n \n\n\n </div>\n</article>\n\n<!-- links to this doc:\n - api/forms\n - api/forms/ReactiveFormsModule\n - guide/deprecations\n - guide/glossary\n - guide/reactive-forms\n - start/start-forms\n-->\n<!-- links from this doc:\n - /api\n - /guide/reactive-forms\n - api/animations/group\n - api/core/Component\n - api/core/Inject\n - api/forms\n - api/forms/AbstractControl\n - api/forms/AbstractControlOptions\n - api/forms/AsyncValidatorFn\n - api/forms/FormArray\n - api/forms/FormBuilder#array\n - api/forms/FormBuilder#control\n - api/forms/FormBuilder#control-usage-notes\n - api/forms/FormBuilder#description\n - api/forms/FormBuilder#formbuilder\n - api/forms/FormBuilder#group\n - api/forms/FormBuilder#initialize-a-control-as-disabled\n - api/forms/FormBuilder#methods\n - api/forms/FormBuilder#see-also\n - api/forms/FormControl\n - api/forms/FormGroup\n - api/forms/ValidationErrors\n - api/forms/ValidatorFn\n - api/forms/Validators\n - https://github.com/angular/angular/edit/master/packages/forms/src/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L105-L133\n - https://github.com/angular/angular/edit/master/packages/forms/src/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L134-L155\n - https://github.com/angular/angular/edit/master/packages/forms/src/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L21-L182\n - https://github.com/angular/angular/edit/master/packages/forms/src/form_builder.ts?message=docs(forms)%3A%20describe%20your%20change...#L81-L104\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/form_builder.ts#L105-L133\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/form_builder.ts#L134-L155\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/form_builder.ts#L21-L182\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/form_builder.ts#L81-L104\n-->"
}