如何在extjs4中的不同B类函数中调用A类函数

时间:2017-01-23 09:19:46

标签: extjs

注意: - 我想在“afterRequest函数”中的另一个类B中调用ClassA函数“deleteEntryInternal”。如何在其他类函数中调用此函数。

我的代码在下面 //这是我的A级

Ext.define('WebCare.UI.OtherServicesEditor', {
extend: 'Ext.WebCare.UI.BaseEditor',
_otherservicesGrid: null,
alias: 'widget.otherserviceseditor',
title: 'Other Services',
defaultType: 'textfield',
id: 'otherservicesEditor',

deleteEntryInternal: function (isDelete) {
    this.disableForm();
    var self = this;
    var selection =     self._otherservicesGrid.getSelectionModel().getSelection();
    if (selection.length > 0) {
        if (isDelete) {
            selection[0].data.IsDelete = true;
        }
        this.deleteServerRecord(selection[0].data, function () { });

        vent.trigger(otherServicesStore.storeId, selection[0].data);
    }
}

2 个答案:

答案 0 :(得分:2)

要调用此方法,您需要获取此类的实例。然后你可以调用该类中的方法。

1.您可以通过

获取Ext.app.Controller的实例
var controllerInstance = appName.app.getController('appName.controller.controllerName');
controllerInstance.methodToCall();

其中 appName 是您的Extjs应用的名称。

2.如果您的班级是已经渲染的视图,您可以通过以下方式获取其实例

var viewInstance = Ext.getCmp(viewId);
viewInstance.methodToCall();

其中 viewId 是您视图的ID。

第3。静态类 - 您可以直接调用静态类的方法,就像类MyStaticClass是静态类一样,您可以调用它的方法,如 -

MyStaticClass.methodToCall();

答案 1 :(得分:-1)

以任何方式跨引用类方法绝不是一个好主意。虽然Harshal的方法会起作用,但它只是非常糟糕的应用程序设计。如果你的类需要对另一个类中发生的事件作出反应那你为什么不在A类中激活一个事件并在B类中设置一个监听器呢?