Angular 2には、サブスクライブできる valueChanges オブザーバブルを公開するFormControlが既にあります。
以下は、動作中のプランカーとコードです。
重要な部分は次のとおりです。
- [FormControl]="model" (input 要素内)
- model = new FormControl() (@angular/forms から)
import {Component} from '@angular/core';
import {FormControl} from '@angular/forms';
@Component({
selector: 'my-app',
template: `
Some Value:
<input type="text" [formControl]="model" />
<div>{{model.value}}</div>
<span *ngFor="let val of values">{{val}},</span>
`
})
export class AppComponent {
model:FormControl = new FormControl()
values = [];
constructor() {
this.model.valueChanges.subscribe(s=>this.values.push(s));
}
}
また、 AppModule にインポートする必要がありますReactiveFormsModule
import { ReactiveFormsModule } from '@angular/forms';
...
@NgModule({
imports: [
...
ReactiveFormsModule
],
declarations: [...],
bootstrap: [...]
})
export class AppModule { }