【问题标题】:Skip the program-made changes in valueChanges for FormControl跳过 FormControl 的 valueChanges 中程序所做的更改
【发布时间】:2018-10-23 03:45:06
【问题描述】:

我有一个用于注册活动的表格,我要求提供日期、时间以及是否重复(每天、每周、每月或根本不重复)。

我还为用户设置了另一个输入,以指定循环结束的时间。问题是有两种方法可以“结束这种重复”。我有一个“重复次数”(如果您想每周重复该事件两周),但我也有一个 datepicker 以防您想指定结束日期(即您希望它每天重复直到9 月 1 日)。

当一个输入的值改变时,我触发一个函数来更新另一个,所以它保持一致

例如,如果我指定我希望它每天重复并设置 5 次,那么我的日期选择器将显示距离原始日期 5 天的日期,反之亦然。

问题在于,由于我对两个输入都有更改的侦听器,因此当用户更改一个时,我会更改另一个(以编程方式)的值,并且也会触发该输入上的 valueChanges,所以它一直在来回走动。

在所有这些介绍之后,您有什么建议可以区分“用户做出的”更改和我在 inputValueChanges 上所做的更改吗?

【问题讨论】:

标签: angular typescript angular-reactive-forms angular-forms


【解决方案1】:

当您使用setValue 更新表单控件值时,您可以将 emitEvent 选项设置为 false。这将阻止 valueChanges 在更改时触发。

yourControl.setValue(newValue, { emitEvent: false });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多