ExtJs 4 从另一个控制器同步调用函数

Posted

技术标签:

【中文标题】ExtJs 4 从另一个控制器同步调用函数【英文标题】:ExtJs 4 call functions from another controller synchronously 【发布时间】:2015-03-30 12:51:46 【问题描述】:

当我尝试在我的控制器中执行此代码时:

epgES.getApplication().getController('epgES.controller.EPGController').newEditorRequest();
epgES.getApplication().getController('epgES.controller.EPGController').updateViewRangeControl(Ext.Date.parseDate(eventStart, "c"));

第一行必须初始化我的控制器,创建视图并加载所有存储,而第二行只需调用控制器的一个函数并在控制器完全加载后更改日期范围。 但我注意到第二行在第一行尚未完成时执行,并且我想要实现的所有逻辑都被破坏了。 如何处理这个问题并“同步”执行这两个方法?

【问题讨论】:

【参考方案1】:

这是预期的行为,也是浏览器工作方式的异步特性。

这是因为您的浏览器在执行下一行代码之前不会在服务器响应之后等待。您可以在加载网页时看到这一点:有时您甚至可以在图像显示之前就开始阅读文本。

updateViewRangeControl 中执行的代码(我假设是完全加载的商店)必须在您商店的load 侦听器中运行,该侦听器在newEditorRequest 中加载。

签出this。

【讨论】:

@antosiy 如果适合您的需要,请标记为答案。

以上是关于ExtJs 4 从另一个控制器同步调用函数的主要内容,如果未能解决你的问题,请参考以下文章

在破坏调用期间从另一个线程未定义的行为调用对象上的方法?

iPhone - 从另一个视图控制器调用函数

如何快速从另一个控制器调用函数

目标-c:从另一个控制器调用 void 函数

从另一个类Swift调用一个类的函数

React:从另一个组件调用函数(具体示例)