使用 Model 绑定

单向绑定

如果您需要具有默认值的表单,可以开始使用ngModel的值绑定语法。

app/signup-form.component.html

1
2
3
4
5
6
7
8
9
10
<form #signupForm="ngForm" (ngSubmit)=register(signupForm)>

<label for="username">Username</label>
<input type="text" name="username" id="username" [ngModel]="generatedUser">

<label for="email">Email</label>
<input type="email" name="email" id="email" ngModel>

<button type="submit">Sign Up</button>
</form>

app/signup-form.component.ts

1
2
3
4
5
6
7
8
9
10
11
12
13
import { Component } from '@angular/core';
import { NgForm } from '@angular/forms';
// ...

@Component({ /* ... */ })
export class SignupForm {
generatedUser: string = generateUniqueUserID();

register(form: NgForm) {
console.log(form.value);
// ...
}
}

双向绑定

虽然Angular 2默认情况下假定单向绑定,但如果需要,双向绑定仍然可用。
为了能够访问模板驱动表单中的双向绑定,请使用“Banana-Box”语法([(ngModel)] ="propertyName")。请务必声明组件上需要的所有属性。

1
2
3
4
5
6
7
8
9
10
<form #signupForm="ngForm" (ngSubmit)=register(signupForm)>

<label for="username">Username</label>
<input type="text" name="username" id="username" [(ngModel)]="username">

<label for="email">Email</label>
<input type="email" name="email" id="email" [(ngModel)]="email">

<button type="submit">Sign Up</button>
</form>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { Component } from '@angular/core';
import { NgForm } from '@angular/forms';
// ...

@Component({ /* ... */ })
export class SignUpForm {
username: string = generateUniqueUserID();
email: string = '';

register(form: NgForm) {
console.log(form.value.username);
console.log(this.username);
// ...
}
}