如何等待 ExtJS 中所有 ViewModel 公式更改完成?

问题描述 投票:0回答:1

我正在使用 Ext JS 框架。我们有一个相当复杂的 ViewModel,其中有许多公式绑定到其他公式。我希望只有在 ViewModel 完成其长级事件触发事件后才能运行一些代码。我正在尝试验证,在计算完所有 ViewModel 公式后,数据模型是否与从我们的 API 返回的计算字段的预期值保持相同 - 基本上是延迟的

model.isDirty()
检查。

我尝试使用 setTimeout 将事件添加到事件队列的末尾,但有时它最终会在公式更新级联的中间触发。我可以简单地设置更长的超时,但这感觉很麻烦,会迫使用户等待更长时间,并且不能保证在特别慢的浏览器上工作。

是否有一种好方法可以在 ViewModel 完成计算后立即运行代码,而不是更快?

有没有办法检查ViewModel是否完成?

有没有一种方法可以类似于 setTimeout 来推迟事件,但仅在事件队列完全清空后运行?

javascript extjs
1个回答
1
投票

在控制器内您可以使用:

// some viewModel options might not be resolved

this.getViewModel().notify();

// all viewModel options are solved

!!小心:如果绑定为空,则绑定公式将不会运行。

© www.soinside.com 2019 - 2024. All rights reserved.