如何从外部控制器功能中调用控制器功能,如在sencha touch中的全局功能

时间:2013-07-26 09:20:10

标签: 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.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
        }

   });

如何从上面的onDereadyready()函数调用somefunction()

3 个答案:

答案 0 :(得分:13)

FCELB.app.getController('LoginController').somefunction();  

<强>其中

FCELB - 申请名称

LoginController - 控制器的名称

某些功能 - 功能名称

答案 1 :(得分:1)

如果您的控制器类共享某些行为,您可能还需要查看ExtJS mixins

答案 2 :(得分:0)

试试这个:

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

var self = this;
document.addEventListener("deviceready", function(e) { self.somefunction(e); }, false);