在我的其中一个页面上,我使用FormBuilder
在初始化时填写表单。每当输入为而不是为空时,每个输入都会得到一个类。这是通过将ngClass
添加到每个输入并订购FormGroup
的valueChanges
来完成的。如何以编程方式触发`valueChanges`?
每当通过编程填充表单时,就会出现我的问题。每当用户更改表单上的任何值时,valueChanges
被调用,但是,使用FormBuilder
时情况并非如此。
我的问题是:如何在FormBuilder
完成时获取valueChanges
事件。
我试过使用this.FormGroup.updateValueAndValidity()
,但是这并没有产生任何结果。
我同意你的观点,我的问题颇具误导性,所以我花时间重写了问题和答案。我曾尝试'markAsDirty'的'setValue'选项,但是,这并没有解决我的问题。 – Max
谢谢Max。但是如果你[查看'setValue()']的源代码(https://github.com/angular/angular/blob/master/modules/%40angular/forms/src/model.ts#L674)会发现它已经调用'updateValueAndValidity()'。此外,'emitEvent'参数默认设置为'true'。换句话说,默认行为应该已经给你所有你想要的东西。也许你没有使用正确的语法来以编程方式更改字段的值? – AngularChef
我公司的consisteny政策要求我使用FormBuilder来初始化表单的内容,所以我被要求使用FormBuilder。如果我只是使用'FormGroup.updateValueAndValidity()'而不提供参数,则表单不会使我需要的方式失效。但是,如果我提供参数,我确实得到了我需要的结果。 – Max