angular - 如何以编程方式触发 `valueChanges`?

标签 angular angular2-forms

在我的一个页面上,我使用 FormBuilder 在初始化时填写表单。只要输入为空,每个输入都会得到一个类。这是通过向每个输入添加一个 ngClass 并订阅 FormGroupvalueChanges 来完成的。

只要以编程方式填写表单,就会出现我的问题。每当用户更改表单上的任何值时,都会调用 valueChanges,但是,使用 FormBuilder 时情况并非如此。

我的问题是:如何在 FormBuilder 完成时触发 valueChanges 事件。

我尝试过使用 this.FormGroup.updateValueAndValidity(),但这并没有产生任何结果。

最佳答案

我找到了适合我的解决方案。我忘记了 updateValueAndValidity 函数中的两个参数。

  • onlySelf:只有在 true 时才会更新此 FormControl
  • emitEvent:当为 true 时将触发 valueChanges 事件。

因此,您将得到如下内容: FormGroup.updateValueAndValidity({ onlySelf: false, emitEvent: true });

关于angular - 如何以编程方式触发 `valueChanges`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42435736/

相关文章:

Angular 6 - 解析器 + Guard + ngrx

javascript - 过滤大型数组(3000 多个)对象

用于 XSS 攻击的 Angular 2+ 清理表单输入

angular - 在 `FormGroup` 中预填充输入字段 - Angular2

Angular 2 防止组件内部的输入触发组件外部的表单提交

css - 更改提交按钮的颜色

Angular2 - 不能动态更改输入类型

javascript - Angular:在 NgForm 的自定义输入组件中调用 markAsDirty()

javascript - 将 javascript 页面级变量传递到捆绑的 Angular2 RC 1 应用程序中

angular - 如何不忘记再次打开 Protractor 到 Angular 同步?