无法从类内部调用 ExtJS 类中的方法

Posted

技术标签:

【中文标题】无法从类内部调用 ExtJS 类中的方法【英文标题】:Unable to call method in ExtJS class from inside the class 【发布时间】:2013-07-16 19:19:05 【问题描述】:

当我尝试执行下面的代码时,我收到两条 Uncaught ReferenceError 消息

Ext.define('Example.foo', 
  store: _createStore(),
  _createStore: function() 
    return new Ext.data.JsonStore(...);
  
);
var example = new Example.foo();

错误信息:

Uncaught ReferenceError: _createStore is not defined
Uncaught ReferenceError: Example is not defined 

如果在store 上方定义_createStore,错误仍然会发生。我正在使用 ExtJS 4.2.1.883。

【问题讨论】:

【参考方案1】:

如果 Foo 是某个 UI 组件并且您必须使用函数来获取对您的商店的引用,您可以这样做:

Ext.define('Example.Foo', 

    // set other Foo properties...

    initComponent: function () 
        this.store = this.createStore();
        this.callParent(arguments);
    ,

    createStore: function () 
        return Ext.create("Ext.data.JsonStore", 
            // store setup
        );
     

);

但是,如果您有一个代表您的商店的类,您可以只使用商店类的字符串名称,Ext 框架将为您创建它的一个实例:

store: 'Example.stores.FooStore'

【讨论】:

太棒了,我需要从initComponent 调用它。我在谷歌上搜索了一下this SO post,这解释了它为什么起作用。

以上是关于无法从类内部调用 ExtJS 类中的方法的主要内容,如果未能解决你的问题,请参考以下文章

从类中调用父方法

使用线程安全方法从类中的多个方法填充 Collection 或 Map

在 SpringBoot 中调用类内部的端点 [重复]

Java - 从类中调用私有数组列表[重复]

使用 array_walk_recursive 从类中调用函数

如何在主方法中从类中调用构造函数