angular-cn/packages/forms/src/directives/form_interface.ts

80 lines
1.8 KiB
TypeScript
Raw Normal View History

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {FormControl, FormGroup} from '../model';
import {AbstractFormGroupDirective} from './abstract_form_group_directive';
2016-06-08 15:36:24 -07:00
import {NgControl} from './ng_control';
2016-06-08 15:36:24 -07:00
/**
* @description
* An interface implemented by `FormGroupDirective` and `NgForm` directives.
*
* Only used by the `FormsModule`.
2016-06-08 15:36:24 -07:00
*/
export interface Form {
/**
* @description
2016-06-08 15:36:24 -07:00
* Add a control to this form.
*
* @param dir The control to add to the form
2016-06-08 15:36:24 -07:00
*/
addControl(dir: NgControl): void;
2016-06-08 15:36:24 -07:00
/**
* @description
2016-06-08 15:36:24 -07:00
* Remove a control from this form.
*
* @param dir: The control to remove from the form
2016-06-08 15:36:24 -07:00
*/
removeControl(dir: NgControl): void;
/**
* @description
* Reports the `FormControl` associated with the provided `NgControl`.
*
* @param dir: The form control instance
2016-06-08 15:36:24 -07:00
*/
getControl(dir: NgControl): FormControl;
2016-06-08 15:36:24 -07:00
/**
* @description
2016-06-08 15:36:24 -07:00
* Add a group of controls to this form.
*
* @param dir: The control group to remove
2016-06-08 15:36:24 -07:00
*/
addFormGroup(dir: AbstractFormGroupDirective): void;
2016-06-08 15:36:24 -07:00
/**
* @description
* Remove a group of controls to this form.
*
* @param dir: The control group to remove
2016-06-08 15:36:24 -07:00
*/
removeFormGroup(dir: AbstractFormGroupDirective): void;
2016-06-08 15:36:24 -07:00
/**
* @description
* Reports the form group for the provided control
*
* @param dir: The form group to query
2016-06-08 15:36:24 -07:00
*/
getFormGroup(dir: AbstractFormGroupDirective): FormGroup;
2016-06-08 15:36:24 -07:00
/**
* @description
2016-06-08 15:36:24 -07:00
* Update the model for a particular control with a new value.
*
* @param dir: The control to update
* @param value: The new value for the control
2016-06-08 15:36:24 -07:00
*/
updateModel(dir: NgControl, value: any): void;
}