仅当字段类型为“数字”时,FormGroup.valueChanges才会在“更改”和“模糊”上触发

时间:2019-07-19 11:03:23

标签: angular

问题:

Stackblitz:Yandex Metrica

如果我更改文本1或文本2的值,则事件将触发一次。但是,当我更改最后一个字段的值(类型为number)时,它将触发更改并模糊,这会在我的webapp中引起一些问题。

问题:

当字段类型为“数字”时,为什么“ valueChange”事件在“更改”和“模糊”上触发?

如何防止这种情况?

(Chrome / Firefox / EDGE上的行为相同)

1 个答案:

答案 0 :(得分:3)

这是众所周知的问题https://github.com/angular/angular/issues/12540

原因是Angular监听CHECK(scopes <@ ARRAY['read', 'write', 'delete', 'update']) input这两个事件,以控制change。我认为这是因为浏览器可以不同地处理这些事件。

您可以使用一个小的解决方法:

input[type=number]

Forked Stackblitz

或使用distinctUntilChanged防止不必要的通话。