我正在尝试使用ngModelChange
更新输入字段数组的基础数据,如this stackblitz
但是,当触发ngModelChange
函数时,更新基础数据模型将阻止进一步的数据输入(例如,尝试在任何字段中键入123
,您将看到仅第一个数字被接受,直到您再次单击该字段。)
这种情况(ngFor
绑定到字段数组)可以很容易地以angular 2
方式进行数据绑定,但是,我需要它与单向绑定+ ngModelChange
一起使用这样,除了更新基础数据之外,我还可以做其他事情(例如,如堆栈闪电所示,我触发unsavedChanges
标志以在UI中显示警告)。
有什么想法可以使这项工作成功吗?
注意:我已经探索过S.O。用于ngModelChange
/ debounceTime
上的文章,例如ngModelChange / debounceTime
根据这些文章,我可以看到在单个/静态字段中如何使用Subject
来推动(去抖动)ngModelChange
函数中的更改。但是,在我的场景中,我有一个动态数组集合,并且不确定是否需要沿着Subjects
数组或包含数组的单个Subject
数组的路线进行搜索,否则是否需要解决整个问题的方法更简单(例如,使用2向绑定,但以某种方式触发另一个函数)。
任何帮助都将不胜感激!
答案 0 :(得分:0)
经过进一步的实验,我发现对数据模型的更改取消反弹仍然不能解决数据输入问题,真正的问题是每次更改后输入字段都失去了焦点。
显然,这是一个已知问题,在使用一组原语时,需要使用trackBy函数,详细here