如何使用Phonegap从Sencha Touch2中的视图调度到控制器

时间:2012-04-27 08:01:30

标签: android cordova sencha-touch-2

我的观点(MyFormPanel)

var controllers = Ext.define("MyApp.controller.formcontroller", {
    extend: "Ext.app.Controller",
    config: {
        refs: {
            username: "username"

 },
},
launch: function () {
     alert('Controller launched');

    },
    init: function () {
         alert('Controller init');
    },
myaction : function (options) {
    alert('options');
      var username = options.username;
      this.render ({
        xtype: 'MyATM',
        username: username})}
});
var formPanel = Ext.create('Ext.form.Panel', {
    fullscreen: true,
    scrollable: 'vertical',
    layout: {
        align: 'center',
        type: 'vbox'
    },
    items: [
            {
                xtype: 'toolbar',
                docked: 'top',
                title: 'Login Form'
            },
            {
        xtype: 'fieldset',
        items: [  
                {  
                    xtype: 'fieldset',   
                    title:'Enter user name & password',  
                    defaults: {  
                        required: true,  
                        labelAlign: 'left',  
                        labelWidth: '50%'  
                    },  
                    items: [  
                    {  
                        xtype: 'textfield',  
                        name : 'username',  
                        label: 'User Name', 
                        allowBlank:false,
                        useClearIcon: true  
                    }, {  
                        xtype: 'passwordfield',  
                        name : 'password',  
                        label: 'Password', 
                        allowBlank:false,
                        useClearIcon: false  
                    }, 
                    {
                        xtype: 'checkboxfield',
                        required:false,
                        id: 'RememberMe',
                        name: 'RememberMe',
                        label: 'Remember Me',
                        labelWidth: '50%'
                        },
                        {
                            xtype: 'button',
                            ui: 'confirm-round',
                            text: 'Log In' , 
                                handler: function() {
                                    //Ext.Msg.alert('Form Values', JSON.stringify(formPanel.getValues(), null, 2));

                                    Ext.ControllerManager.get('formcontroller').ControllerMethod({myaction: myaction});

                                }
                        }

                    ]  
                }],  
    }]
});

formPanel.add({
    xtype: 'toolbar',
    docked: 'bottom',
    layout: { pack: 'center' },

});

我的控制器(FormController)

    Ext.define("MyApp.controller.formcontroller", {
    extend: "Ext.app.Controller",
    config: {
        refs: {
            username: "username"

 },
},
launch: function () {
     alert('Controller launched');

    },
    init: function () {
         alert('Controller init');
    },
myaction : function (options) {
    alert('options');
      var username = options.username;
      this.render ({
        xtype: 'MyATM',
        username: username})}
});

我在Android 2.3上使用Sencha touch2和Phonegap 1.4。当我尝试在登录按钮上移动视图到控制器时单击处理程序函数来调用控制器,我收到错误,Ext.dispatch未定义为函数。 告诉我如何将视图移动到控制器的实际方法,反之亦然。 谢谢

3 个答案:

答案 0 :(得分:0)

Ext.dispatch不是在Sencha Touch 2中使用的推荐方式。它可能会被移除......

无论如何,最好的方式是听听&从控制器处理您的视图上的事件是:

Ext.define("MyApp.controller.formcontroller", {
extend: "Ext.app.Controller",
config: {
  refs: {
    loginButton: "#login-button" // set an id for your login button and this ref works
  },
  control: {
    loginButton: {
      tap: 'handleLogin',
    }
  handle_login: function(){whatever you want to do here}
}

答案 1 :(得分:0)

在建筑师......中 一个。你去按钮的配置,然后 湾搜索事件处理程序,和 C。按右侧的[+]按钮 d。添加“基本处理程序” 即选择TAP事件 F。给它一个名字(onButtonSendTap或其他) G。按完成 H。对了 一世。转换为行动 学家选择[新控制器]或现有控制器 ķ。如果您选择了新控制器,请为其命名 和voilla,你在控制器中有你的处理程序。

答案 2 :(得分:0)

在建筑师......

一个。你去按钮的配置,

湾搜索事件绑定,

℃。按右侧的[+]按钮。

d。添加“基本处理程序”

即选择TAP活动

F。给它一个名字(onButtonSendTap或其他)

克。按DONE

小时。右鼠

我。转换为行动

Ĵ。选择[新控制器]或现有控制器

ķ。如果您选择了新控制器,请为其命名 和voilla,你在控制器中有你的处理程序。