Sencha Touch 2.3.x - 是否有一种从另一个类调用函数的通用方法?

时间:2014-05-12 08:38:37

标签: extjs sencha-touch sencha-touch-2

我遇到了一个非常简单的问题 - 在类之间调用函数。假设我在我已经定义的一个类中有一个函数(renderMap):App.ux.MyClass(我还在app.js中添加了这个类到'需要')。如何调用' renderMap'来自其他班级的功能?

我尝试了App.ux.MyClass.renderMap(),但我得到了#undefined不是函数'。

2 个答案:

答案 0 :(得分:0)

我认为它在应用程序架构中存在问题。

您可以使用DI(这将是最佳选择),但是,如果您不能,请尝试创建Singleton或ServiceLocator模式(是的,我知道它们是反模式)。

在ExtJS 4.x和Sencha Touch 2.x中可以通过类中的statics定义创建单例。阅读更多:http://docs-origin.sencha.com/touch/2.3.2/#!/api/Ext.Class-cfg-statics

然后,您可以调用App.ux.MyClass.methodName()等方法。

答案 1 :(得分:0)

我会通过创建一个包含许多类共享的所有函数的mixin来解决问题。有关详细信息,请参阅the mixins docs

然后你只需要打电话

this.renderMap()

在使用该mixin的任何类中。