使用双向数据绑定

双向数据绑定使用ngModel指令将输入和输出绑定组合为单个符号。

  1. <input [(ngModel)]="name" >

它幕后做的相当于:

  1. <input [ngModel]="name" (ngModelChange)="name=$event">

要创建一个支持双向绑定的组件,你必须定义一个@Output属性匹配@Input,但后缀为Change,例如:

app/counter.component.ts

  1. import { Component, Input, Output, EventEmitter } from '@angular/core';
  2. @Component({
  3. selector: 'rio-counter',
  4. templateUrl: 'app/counter.component.html'
  5. })
  6. export class CounterComponent {
  7. @Input() count = 0;
  8. @Output() countChange = EventEmitter<number>();
  9. increment() {
  10. this.count++;
  11. this.countChange.emit(this.count);
  12. }
  13. }

app/counter.component.html

  1. <div>
  2. <p>
  3. <ng-content></ng-content>
  4. Count: {{ count }} -
  5. <button (click)="increment()">Increment</button>
  6. </p>
  7. </div>

View Example