2015-07-28 01:12:30 -04:00
p.location-badge.
exported from <a href='../forms'>angular2/forms</a>
2015-08-07 02:25:42 -04:00
defined in <a href="https://github.com/angular/angular/tree/2.0.0-alpha.34/modules/angular2/src/forms/directives/ng_form_model.ts#L15-L142">angular2/src/forms/directives/ng_form_model.ts (line 15)</a>
2015-07-28 01:12:30 -04:00
:markdown
Binds an existing control group to a DOM element.
# Example
In this example, we bind the control group to the form element, and we bind the login and
password controls to the
login and password elements.
```
@Component({selector: "login-comp"})
@View({
2015-08-11 20:09:57 -04:00
directives: [FORM_DIRECTIVES],
2015-07-28 01:12:30 -04:00
template: "<form [ng-form-model]='loginForm'>" +
"Login <input type='text' ng-control='login'>" +
"Password <input type='password' ng-control='password'>" +
"<button (click)="onLogin()">Login</button>" +
"</form>"
})
class LoginComp {
loginForm:ControlGroup;
constructor() {
this.loginForm = new ControlGroup({
login: new Control(""),
password: new Control("")
});
}
onLogin() {
// this.loginForm.value
}
}
```
We can also use ng-model to bind a domain model to the form.
```
@Component({selector: "login-comp"})
@View({
2015-08-11 20:09:57 -04:00
directives: [FORM_DIRECTIVES],
2015-07-28 01:12:30 -04:00
template: "<form [ng-form-model]='loginForm'>" +
"Login <input type='text' ng-control='login' [(ng-model)]='login'>" +
"Password <input type='password' ng-control='password' [(ng-model)]='password'>" +
"<button (click)="onLogin()">Login</button>" +
"</form>"
})
class LoginComp {
credentials:{login:string, password:string}
loginForm:ControlGroup;
constructor() {
this.loginForm = new ControlGroup({
login: new Control(""),
password: new Control("")
});
}
onLogin() {
// this.credentials.login === 'some login'
// this.credentials.password === 'some password'
}
}
```
2015-07-28 16:28:47 -04:00
.l-main-section
h2 Annotations
.l-sub-section
h3.annotation Directive
pre.prettyprint
code.
@Directive({
selector: '[ng-form-model]',
2015-08-03 02:08:36 -04:00
bindings: [formDirectiveBinding],
2015-07-28 16:28:47 -04:00
properties: ['form: ng-form-model'],
lifecycle: [LifecycleEvent.onChange],
host: {
'(submit)': 'onSubmit()',
},
events: ['ngSubmit'],
exportAs: 'form'
})
2015-07-28 01:12:30 -04:00
.l-main-section
h2 Members
.l-sub-section
h3 form
:markdown
.l-sub-section
h3 directives
:markdown
.l-sub-section
h3 ngSubmit
:markdown
.l-sub-section
h3 onChange
pre.prettyprint
code.
onChange(_: any)
:markdown
.l-sub-section
h3 formDirective
:markdown
.l-sub-section
h3 control
:markdown
.l-sub-section
h3 path
:markdown
.l-sub-section
h3 addControl
pre.prettyprint
code.
addControl(dir: NgControl)
:markdown
.l-sub-section
h3 getControl
pre.prettyprint
code.
getControl(dir: NgControl)
:markdown
.l-sub-section
h3 removeControl
pre.prettyprint
code.
removeControl(dir: NgControl)
:markdown
.l-sub-section
h3 addControlGroup
pre.prettyprint
code.
addControlGroup(dir: NgControlGroup)
:markdown
.l-sub-section
h3 removeControlGroup
pre.prettyprint
code.
removeControlGroup(dir: NgControlGroup)
:markdown
.l-sub-section
h3 getControlGroup
pre.prettyprint
code.
getControlGroup(dir: NgControlGroup)
:markdown
.l-sub-section
h3 updateModel
pre.prettyprint
code.
updateModel(dir: NgControl, value: any)
:markdown
.l-sub-section
h3 onSubmit
pre.prettyprint
code.
onSubmit()
:markdown