模版驱动表单

在Angular 2中构建表单最直接的方法是利用为您提供的指令。

首先,考虑一个典型的表单:

  1. <form method="POST" action="/register" id="signup-form">
  2. <label for="email">Email</label>
  3. <input type="text" name="email" id="email">
  4. <label for="password">Password</label>
  5. <input type="password" name="password" id="password">
  6. <button type="submit">Sign Up</button>
  7. </form>

Angular 2已经为你提供了一个form指令,并形成在封面下操作的相关指令,如输入等。 对于基本的实现,我们只需要添加一些属性,并确保我们的组件知道如何处理数据。

index.html

  1. <signup-form>Loading...</signup-form>

signup-form.component.html

  1. <form #signupForm="ngForm" (ngSubmit)="registerUser(signupForm)">
  2. <label for="email">Email</label>
  3. <input type="text" name="email" id="email" ngModel>
  4. <label for="password">Password</label>
  5. <input type="password" name="password" id="password" ngModel>
  6. <button type="submit">Sign Up</button>
  7. </form>

signup-form.component.ts

  1. import { Component } from '@angular/core';
  2. import { NgForm } from '@angular/forms';
  3. @Component({
  4. selector: 'app-signup-form',
  5. templateUrl: 'app/signup-form.component.html',
  6. })
  7. export class SignupFormComponent {
  8. registerUser(form: NgForm) {
  9. console.log(form.value);
  10. // {email: '...', password: '...'}
  11. // ...
  12. }
  13. }