docs(forms): update docs for NgForm (#11547)
This commit is contained in:
parent
61aad7925f
commit
26d1423ae9
|
@ -14,8 +14,8 @@ import {NgForm} from '@angular/forms';
|
|||
selector: 'example-app',
|
||||
template: `
|
||||
<form #f="ngForm" (ngSubmit)="onSubmit(f)" novalidate>
|
||||
<input name="first" ngModel placeholder="First name" required #first="ngModel">
|
||||
<input name="last" ngModel placeholder="Last name">
|
||||
<input name="first" ngModel required #first="ngModel">
|
||||
<input name="last" ngModel>
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
|
||||
|
|
|
@ -29,61 +29,32 @@ export const formDirectiveProvider: any = {
|
|||
const resolvedPromise = Promise.resolve(null);
|
||||
|
||||
/**
|
||||
* If `NgForm` is bound in a component, `<form>` elements in that component will be
|
||||
* upgraded to use the Angular form system.
|
||||
* @whatItDoes Creates a top-level {@link FormGroup} instance and binds it to a form
|
||||
* to track aggregate form value and validation status.
|
||||
*
|
||||
* ### Typical Use
|
||||
* @howToUse
|
||||
*
|
||||
* Include `FORM_DIRECTIVES` in the `directives` section of a {@link Component} annotation
|
||||
* to use `NgForm` and its associated controls.
|
||||
* As soon as you import the `FormsModule`, this directive becomes active by default on
|
||||
* all `<form>` tags. You don't need to add a special selector.
|
||||
*
|
||||
* ### Structure
|
||||
* You can export the directive into a local template variable using `ngForm` as the key
|
||||
* (ex: `#myForm="ngForm"`). This is optional, but useful. Many properties from the underlying
|
||||
* {@link FormGroup} instance are duplicated on the directive itself, so a reference to it
|
||||
* will give you access to the aggregate value and validity status of the form, as well as
|
||||
* user interaction properties like `dirty` and `touched`.
|
||||
*
|
||||
* An Angular form is a collection of `FormControl`s in some hierarchy.
|
||||
* `FormControl`s can be at the top level or can be organized in `FormGroup`s
|
||||
* or `FormArray`s. This hierarchy is reflected in the form's `value`, a
|
||||
* JSON object that mirrors the form structure.
|
||||
* To register child controls with the form, you'll want to use {@link NgModel} with a
|
||||
* `name` attribute. You can also use {@link NgModelGroup} if you'd like to create
|
||||
* sub-groups within the form.
|
||||
*
|
||||
* ### Submission
|
||||
* You can listen to the directive's `ngSubmit` event to be notified when the user has
|
||||
* triggered a form submission.
|
||||
*
|
||||
* The `ngSubmit` event signals when the user triggers a form submission.
|
||||
* {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}
|
||||
*
|
||||
* ```typescript
|
||||
* @Component({
|
||||
* selector: 'my-app',
|
||||
* template: `
|
||||
* <div>
|
||||
* <p>Submit the form to see the data object Angular builds</p>
|
||||
* <h2>NgForm demo</h2>
|
||||
* <form #f="ngForm" (ngSubmit)="onSubmit(f.value)">
|
||||
* <h3>Control group: credentials</h3>
|
||||
* <div ngModelGroup="credentials">
|
||||
* <p>Login: <input type="text" name="login" ngModel></p>
|
||||
* <p>Password: <input type="password" name="password" ngModel></p>
|
||||
* </div>
|
||||
* <h3>Control group: person</h3>
|
||||
* <div ngModelGroup="person">
|
||||
* <p>First name: <input type="text" name="firstName" ngModel></p>
|
||||
* <p>Last name: <input type="text" name="lastName" ngModel></p>
|
||||
* </div>
|
||||
* <button type="submit">Submit Form</button>
|
||||
* <p>Form data submitted:</p>
|
||||
* </form>
|
||||
* <pre>{{data}}</pre>
|
||||
* </div>
|
||||
* `,
|
||||
* directives: []
|
||||
* })
|
||||
* export class App {
|
||||
* constructor() {}
|
||||
* * **npm package**: `@angular/forms`
|
||||
*
|
||||
* data: string;
|
||||
*
|
||||
* onSubmit(data) {
|
||||
* this.data = JSON.stringify(data, null, 2);
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
* * **NgModule**: `FormsModule`
|
||||
*
|
||||
* @stable
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue