Wil*_*ega 6 angular2-forms angular
我正在使用FormGroup
,自定义验证器等.我需要在表单变为有效/无效时捕获事件处理程序,而不是属性,而是ts代码中的实际事件.
我看了一下文档,但我找不到类似的东西: (validityChange)="myEventHandler($event)"
哪里validityChange
只是我正在寻找的实际事件名称的占位符.
Gün*_*uer 12
订阅 statusChanges
this.myForm.statusChanges
.filter(s => s == 'VALID')
.subscribe(val => onValid())
Run Code Online (Sandbox Code Playgroud)
对于带有 RxJs 6+ 的 Angular(需要使用管道):
this.form.statusChanges
.pipe(
filter(() => this.form.valid))
.subscribe(() => this.onFormValid());
Run Code Online (Sandbox Code Playgroud)
this.form.valid
是一个布尔属性,因此要么为真,要么为假。因此,当表单有效时,过滤器将返回 true,并且订阅将仅this.onFormValid()
在属性为 true 时调用。
您可以通过执行以下操作来查看发生了什么:
public ngOnInit() {
this.form.statusChanges
.pipe(
filter((status: string) => {console.log(status); return this.form.valid}))
.subscribe(() => this.onFormValid());
}
private onFormValid() {
console.log('form is valid')
}
Run Code Online (Sandbox Code Playgroud)
人们还应该取消订阅或接受(完整),例如:
this.form.statusChanges
.pipe(
filter(() => this.form.valid)),
takeUntil(this.destroy$)
.subscribe(() => this.onFormValid());
ngOnDestroy() {
this.destroy$.next();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2498 次 |
最近记录: |