[formControl] .valueChanges不起作用
.html
<span>Test</span>
<input type="number" [formControl]="testForm">
.ts
testData: EventEmitter<any> = new EventEmitter<any>();
testForm: FromControl;
constructor() {
this.testForm = new FormControl();
}
this.testForm.valueChanges.subscribe(() => {
const data: any = {
value: this.testForm.value
}
this.testData.emit(data);
});
在更改输入时,我试图发出该值,看起来好像有问题,testForm.valueChanges无法正常工作,我需要对此进行更改吗?
答案 0 :(得分:1)
尝试将订阅移至构造函数中-下面的示例。
testForm = new FormControl('');
constructor() {
this.testForm.valueChanges.subscribe(value => {
console.log(value);
});
};
答案 1 :(得分:-4)
您不能在formGroup之外拥有formControl。
关注angular的教程:https://angular.io/guide/reactive-forms
我已经将该函数放在ngOnInit生命周期上,并且可以正常工作。这是一个工作示例: https://stackblitz.com/edit/angular-valuechanges
编辑:添加了代码
import { Component,EventEmitter } from '@angular/core';
import { FormControl } from '@angular/forms';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
testForm: FormControl = new FormControl('');
testData: EventEmitter<any> = new EventEmitter<any>();
ngOnInit(){
this.testForm.valueChanges.subscribe(() => {
const data: any = {
value: this.testForm.value
}
console.log(JSON.stringify(data));
this.testData.emit(data);
});
}
}