使用ngModelChange更新输入字段数组

时间:2019-12-06 17:36:37

标签: javascript angular

我正在尝试使用ngModelChange更新输入字段数组的基础数据,如this stackblitz

但是,当触发ngModelChange函数时,更新基础数据模型将阻止进一步的数据输入(例如,尝试在任何字段中键入123,您将看到仅第一个数字被接受,直到您再次单击该字段。)

这种情况(ngFor绑定到字段数组)可以很容易地以angular 2方式进行数据绑定,但是,我需要它与单向绑定+ ngModelChange一起使用这样,除了更新基础数据之外,我还可以做其他事情(例如,如堆栈闪电所示,我触发unsavedChanges标志以在UI中显示警告)。

有什么想法可以使这项工作成功吗?

注意:我已经探索过S.O。用于ngModelChange / debounceTime上的文章,例如ngModelChange / debounceTime

根据这些文章,我可以看到在单个/静态字段中如何使用Subject来推动(去抖动)ngModelChange函数中的更改。但是,在我的场景中,我有一个动态数组集合,并且不确定是否需要沿着Subjects数组或包含数组的单个Subject数组的路线进行搜索,否则是否需要解决整个问题的方法更简单(例如,使用2向绑定,但以某种方式触发另一个函数)。

任何帮助都将不胜感激!

  • S。阿罗拉

1 个答案:

答案 0 :(得分:0)

经过进一步的实验,我发现对数据模型的更改取消反弹仍然不能解决数据输入问题,真正的问题是每次更改后输入字段都失去了焦点。

显然,这是一个已知问题,在使用一组原语时,需要使用trackBy函数,详细here