Extjs 如何从外部控制器函数调用控制器函数,如sencha touch中的全局函数

Extjs 如何从外部控制器函数调用控制器函数,如sencha touch中的全局函数,extjs,cordova,extjs4,sencha-touch,sencha-touch-2,Extjs,Cordova,Extjs4,Sencha Touch,Sencha Touch 2,我如何从外部控制器功能调用控制器内部的功能,例如可能是电话间隔回拨功能 这是在控制器外定义的函数 function onDeviceReady() { //do ALL your localstorage stuff here console.log('In onDeviceReady() function'); somefunction();// this is not working } 这是控制器类 Ext.define('FCELB.contr

我如何从外部控制器功能调用控制器内部的功能,例如可能是电话间隔回拨功能

这是在控制器外定义的函数

  function onDeviceReady() {
    //do ALL your localstorage stuff here
    console.log('In onDeviceReady() function');
    somefunction();// this is not working
  }
这是控制器类

     Ext.define('FCELB.controller.LoginController', {
        extend: 'Ext.app.Controller',
        config: {
            refs: {
                username: '#username',
                password: '#password'
            },

            }

        },      

        init: function () {
            console.log('Login controller');
            document.addEventListener("deviceready", onDeviceReady, false);
            //onDeviceReady();
        },

        somefunction:function(){
            //some functionality
        }

   });
如何从上面的OnDevicerady()函数调用
somefunction()

试试以下方法:

document.addEventListener("deviceready", this.somefunction, false);

其中

FCELB-应用程序名称

LoginController-控制器的名称


somefunction-函数名

如果您的控制器类共享某些行为,您可能还想看看

此解决方案可以工作,但每次运行时都会从被调用的类调用init函数。
var self = this;
document.addEventListener("deviceready", function(e) { self.somefunction(e); }, false);
FCELB.app.getController('LoginController').somefunction();