基于 David East 教程(https://gist.github.com/davideast/0b7efc93e0ba9aaa446e),我试图让 Angular2 可观察到处理非常小的表单示例。
基本上,我希望每次输入值发生变化时,我的观察者都会触发并捕获一些事件。但由于某些奇怪的原因,我的代码不起作用......
lib 版本:typescript 1.5.0-beta、Angular-2.0.0-28
这是打字稿代码:
/// <reference path="../../typings/angular2/angular2.d.ts" />
/// <reference path="../../typings/angular2/angular2_addons.d.ts" />
import {Component, View, bootstrap, Form, EventEmitter} from 'angular2/angular2';
import {FormBuilder, Validators, formDirectives, ControlGroup} from 'angular2/forms';
import {Inject} from 'angular2/di';
@Component({
selector: 'mycmp',
appInjector: [FormBuilder]
})
@View({
template: '<form [ng-form-model]="myForm"><input type="text" ng-control="myText">{{myForm.controls.myText.value}}</form>',
directives: [formDirectives],
})
export class MyCmp {
myForm:ControlGroup;
constructor(@Inject(FormBuilder) builder:FormBuilder) {
this.myForm = builder.group({
myText: ["someDefaultVal...", Validators.required]
});
this.myForm.controls.myText.valueChanges.subscribe(function (value) {
console.log("changed value=" + value);
}.bind(this));
}
}
bootstrap(MyCmp);
不幸的是我得到TypeError: this.myForm.controls.myText.valueChanges.subscribe is not a function