5 lines
18 KiB
JSON

{
"id": "api/forms/NgModelGroup",
"title": "NgModelGroup",
"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/NgModelGroup\", \"name\": \"NgModelGroup\" } }\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/directives/ng_model_group.ts?message=docs(forms)%3A%20describe%20your%20change...#L23-L78\" 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/directives/ng_model_group.ts#L23-L78\" 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=\"ngmodelgroup\">NgModelGroup<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#ngmodelgroup\"><i class=\"material-icons\">link</i></a></h1>\n \n <label class=\"api-type-label directive\">directive</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 and binds a <code><a href=\"api/forms/FormGroup\" class=\"code-anchor\">FormGroup</a></code> instance to a DOM element.</p>\n\n <p><a href=\"api/forms/NgModelGroup#description\">See more...</a></p>\n </section>\n \n \n \n \n\n <h2 id=\"ngmodule\">NgModule<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#ngmodule\"><i class=\"material-icons\">link</i></a></h2>\n<ul class=\"ngmodule-list\">\n\n <li>\n <a href=\"api/forms/FormsModule\">\n <code-example language=\"ts\" hidecopy=\"true\" class=\"no-box\">FormsModule</code-example>\n </a>\n </li>\n \n</ul>\n\n\n \n<section class=\"selector-list\">\n <h2 id=\"selectors\">Selectors<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#selectors\"><i class=\"material-icons\">link</i></a></h2>\n \n <ul>\n <li><code>[<a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a>]</code></li>\n \n </ul>\n \n</section>\n\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/NgModelGroup#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=\"name\"></a>\n <code class=\"\"><span class=\"property-binding\">@<a href=\"api/core/Input\" class=\"code-anchor\">Input</a>('<a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a>')</span><br><span class=\"member-name\">name</span>: string</code>\n </td>\n <td>\n \n <p>Tracks the name of the <code><a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">NgModelGroup</a></code> bound to the directive. The name corresponds\nto a key in the parent <code><a href=\"api/forms/NgForm\" class=\"code-anchor\">NgForm</a></code>.</p>\n\n \n </td>\n </tr>\n \n </tbody>\n </table>\n</section>\n\n\n<section class=\"inherited-members-list\">\n <h3 id=\"inherited-from-abstractformgroupdirective\">Inherited from <code><a class=\"code-anchor\" href=\"api/forms/AbstractFormGroupDirective\">AbstractFormGroupDirective</a></code><a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#inherited-from-abstractformgroupdirective\"><i class=\"material-icons\">link</i></a></h3>\n <ul>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractFormGroupDirective#control\"><span class=\"member-name\">control</span>: FormGroup</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractFormGroupDirective#path\"><span class=\"member-name\">path</span>: string[]</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractFormGroupDirective#formDirective\"><span class=\"member-name\">formDirective</span>: Form | null</a></code>\n </li>\n \n </ul>\n</section>\n\n\n\n<section class=\"inherited-members-list\">\n <h3 id=\"inherited-from-controlcontainer\">Inherited from <code><a class=\"code-anchor\" href=\"api/forms/ControlContainer\">ControlContainer</a></code><a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#inherited-from-controlcontainer\"><i class=\"material-icons\">link</i></a></h3>\n <ul>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/ControlContainer#name\"><span class=\"member-name\">name</span>: string | number | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/ControlContainer#formDirective\"><span class=\"member-name\">formDirective</span>: Form | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/ControlContainer#path\"><span class=\"member-name\">path</span>: string[] | null</a></code>\n </li>\n \n </ul>\n</section>\n\n\n\n<section class=\"inherited-members-list\">\n <h3 id=\"inherited-from-abstractcontroldirective\">Inherited from <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective\">AbstractControlDirective</a></code><a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#inherited-from-abstractcontroldirective\"><i class=\"material-icons\">link</i></a></h3>\n <ul>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#control\">abstract <span class=\"member-name\">control</span>: AbstractControl | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#value\"><span class=\"member-name\">value</span>: any</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#valid\"><span class=\"member-name\">valid</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#invalid\"><span class=\"member-name\">invalid</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#pending\"><span class=\"member-name\">pending</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#disabled\"><span class=\"member-name\">disabled</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#enabled\"><span class=\"member-name\">enabled</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#errors\"><span class=\"member-name\">errors</span>: ValidationErrors | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#pristine\"><span class=\"member-name\">pristine</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#dirty\"><span class=\"member-name\">dirty</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#touched\"><span class=\"member-name\">touched</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#status\"><span class=\"member-name\">status</span>: string | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#untouched\"><span class=\"member-name\">untouched</span>: boolean | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#statusChanges\"><span class=\"member-name\">statusChanges</span>: Observable&#x3C;any> | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#valueChanges\"><span class=\"member-name\">valueChanges</span>: Observable&#x3C;any> | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#path\"><span class=\"member-name\">path</span>: string[] | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#validator\"><span class=\"member-name\">validator</span>: ValidatorFn | null</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#asyncValidator\"><span class=\"member-name\">asyncValidator</span>: AsyncValidatorFn | null</a></code>\n </li>\n \n </ul>\n</section>\n\n\n\n\n\n\n\n \n<section class=\"export-as\">\n <h2 id=\"template-variable-references\">Template variable references<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#template-variable-references\"><i class=\"material-icons\">link</i></a></h2>\n <table class=\"is-full-width list-table export-as-table\">\n <thead>\n <tr>\n <th>Identifier</th>\n <th>Usage</th>\n </tr>\n </thead>\n <tbody>\n <tr class=\"export-as\">\n <td><code><a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a></code></td>\n <td><code>#myTemplateVar=\"<a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a>\"</code></td>\n </tr>\n \n </tbody>\n </table>\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/NgModelGroup#description\"><i class=\"material-icons\">link</i></a></h2>\n <p>This directive can only be used as a child of <code><a href=\"api/forms/NgForm\" class=\"code-anchor\">NgForm</a></code> (within <code>&#x3C;form></code> tags).</p>\n<p>Use this directive to validate a sub-group of your form separately from the\nrest of your form, or if some values in your domain model make more sense\nto consume together in a nested object.</p>\n<p>Provide a name for the sub-group and it will become the key\nfor the sub-group in the form's full value. If you need direct access, export the directive into\na local template variable using <code><a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a></code> (ex: <code>#myGroup=\"<a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a>\"</code>).</p>\n\n <h3 id=\"consuming-controls-in-a-grouping\">Consuming controls in a grouping<a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#consuming-controls-in-a-grouping\"><i class=\"material-icons\">link</i></a></h3>\n<p>The following example shows you how to combine controls together in a sub-group\nof the form.</p>\n<code-example path=\"forms/ts/ngModelGroup/ng_model_group_example.ts\" region=\"Component\">\nimport {<a href=\"api/core/Component\" class=\"code-anchor\">Component</a>} from '@angular/core';\nimport {<a href=\"api/forms/NgForm\" class=\"code-anchor\">NgForm</a>} from '@angular/forms';\n\n@<a href=\"api/core/Component\" class=\"code-anchor\">Component</a>({\n selector: 'example-app',\n template: `\n &#x3C;form #f=\"<a href=\"api/forms/NgForm\" class=\"code-anchor\">ngForm</a>\" (ngSubmit)=\"onSubmit(f)\">\n &#x3C;p *<a href=\"api/common/NgIf\" class=\"code-anchor\">ngIf</a>=\"nameCtrl.invalid\">Name is invalid.&#x3C;/p>\n\n &#x3C;div <a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a>=\"name\" #nameCtrl=\"<a href=\"api/forms/NgModelGroup\" class=\"code-anchor\">ngModelGroup</a>\">\n &#x3C;input name=\"first\" [<a href=\"api/forms/NgModel\" class=\"code-anchor\">ngModel</a>]=\"name.first\" <a href=\"api/forms/MinLengthValidator\" class=\"code-anchor\">minlength</a>=\"2\">\n &#x3C;input name=\"last\" [<a href=\"api/forms/NgModel\" class=\"code-anchor\">ngModel</a>]=\"name.last\" required>\n &#x3C;/div>\n\n &#x3C;input name=\"<a href=\"api/forms/EmailValidator\" class=\"code-anchor\">email</a>\" <a href=\"api/forms/NgModel\" class=\"code-anchor\">ngModel</a>>\n &#x3C;button>Submit&#x3C;/button>\n &#x3C;/form>\n\n &#x3C;button (click)=\"setValue()\">Set value&#x3C;/button>\n `,\n})\nexport class NgModelGroupComp {\n name = {first: 'Nancy', last: 'Drew'};\n\n onSubmit(f: <a href=\"api/forms/NgForm\" class=\"code-anchor\">NgForm</a>) {\n console.log(f.value); // {name: {first: 'Nancy', last: 'Drew'}, <a href=\"api/forms/EmailValidator\" class=\"code-anchor\">email</a>: ''}\n console.log(f.valid); // true\n }\n\n setValue() {\n this.name = {first: 'Bess', last: 'Marvin'};\n }\n}\n\n</code-example>\n\n </section>\n \n\n \n\n \n\n \n\n \n\n\n\n\n\n\n\n<section class=\"inherited-members-list\">\n <h3 id=\"inherited-from-abstractcontroldirective-1\">Inherited from <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective\">AbstractControlDirective</a></code><a title=\"Link to this heading\" class=\"header-link\" aria-hidden=\"true\" href=\"api/forms/NgModelGroup#inherited-from-abstractcontroldirective-1\"><i class=\"material-icons\">link</i></a></h3>\n <ul>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#reset\"><span class=\"member-name\">reset</span>(value: any = undefined): void</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#hasError\"><span class=\"member-name\">hasError</span>(errorCode: string, path?: string | (string | number)[]): boolean</a></code>\n </li>\n \n <li>\n <code><a class=\"code-anchor\" href=\"api/forms/AbstractControlDirective#getError\"><span class=\"member-name\">getError</span>(errorCode: string, path?: string | (string | number)[]): any</a></code>\n </li>\n \n </ul>\n</section>\n\n\n\n\n\n \n \n\n </div>\n</article>\n\n<!-- links to this doc:\n - api/core/OnDestroy\n - api/core/OnInit\n - api/forms\n - api/forms/AbstractControlDirective\n - api/forms/AbstractFormGroupDirective\n - api/forms/ControlContainer\n - api/forms/FormsModule\n - api/forms/NgControlStatusGroup\n - api/forms/NgForm\n - guide/forms\n - guide/glossary\n-->\n<!-- links from this doc:\n - /api\n - api/common/NgIf\n - api/core/Component\n - api/core/Input\n - api/forms\n - api/forms/AbstractControlDirective\n - api/forms/AbstractControlDirective#asyncValidator\n - api/forms/AbstractControlDirective#control\n - api/forms/AbstractControlDirective#dirty\n - api/forms/AbstractControlDirective#disabled\n - api/forms/AbstractControlDirective#enabled\n - api/forms/AbstractControlDirective#errors\n - api/forms/AbstractControlDirective#getError\n - api/forms/AbstractControlDirective#hasError\n - api/forms/AbstractControlDirective#invalid\n - api/forms/AbstractControlDirective#path\n - api/forms/AbstractControlDirective#pending\n - api/forms/AbstractControlDirective#pristine\n - api/forms/AbstractControlDirective#reset\n - api/forms/AbstractControlDirective#status\n - api/forms/AbstractControlDirective#statusChanges\n - api/forms/AbstractControlDirective#touched\n - api/forms/AbstractControlDirective#untouched\n - api/forms/AbstractControlDirective#valid\n - api/forms/AbstractControlDirective#validator\n - api/forms/AbstractControlDirective#value\n - api/forms/AbstractControlDirective#valueChanges\n - api/forms/AbstractFormGroupDirective\n - api/forms/AbstractFormGroupDirective#control\n - api/forms/AbstractFormGroupDirective#formDirective\n - api/forms/AbstractFormGroupDirective#path\n - api/forms/ControlContainer\n - api/forms/ControlContainer#formDirective\n - api/forms/ControlContainer#name\n - api/forms/ControlContainer#path\n - api/forms/EmailValidator\n - api/forms/FormGroup\n - api/forms/FormsModule\n - api/forms/MinLengthValidator\n - api/forms/NgForm\n - api/forms/NgModel\n - api/forms/NgModelGroup#consuming-controls-in-a-grouping\n - api/forms/NgModelGroup#description\n - api/forms/NgModelGroup#inherited-from-abstractcontroldirective\n - api/forms/NgModelGroup#inherited-from-abstractcontroldirective-1\n - api/forms/NgModelGroup#inherited-from-abstractformgroupdirective\n - api/forms/NgModelGroup#inherited-from-controlcontainer\n - api/forms/NgModelGroup#ngmodelgroup\n - api/forms/NgModelGroup#ngmodule\n - api/forms/NgModelGroup#properties\n - api/forms/NgModelGroup#selectors\n - api/forms/NgModelGroup#template-variable-references\n - https://github.com/angular/angular/edit/master/packages/forms/src/directives/ng_model_group.ts?message=docs(forms)%3A%20describe%20your%20change...#L23-L78\n - https://github.com/angular/angular/tree/12.0.0-next.7/packages/forms/src/directives/ng_model_group.ts#L23-L78\n-->"
}