1

我的视图 (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 未定义为函数。告诉我如何将视图移动到控制器的实际方式,反之亦然。谢谢

4

3 回答 3

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}
}
于 2012-04-27T16:09:41.747 回答
0

而在建筑师中
...... 你去按钮的配置,然后b。搜索事件处理程序,以及 c。按下右侧的 [+] 按钮。
d。添加“基本处理程序” e。选择 TAP 事件 f。给它一个名字(onButtonSendTap 或其他) g. 按完成 h。鼠标右键 i. 转换为动作 j。选择 [新控制器] 或现有控制器 k。如果您选择新控制器,请给它一个名称,然后瞧,您的处理程序就在控制器中。

于 2012-06-10T06:38:40.187 回答
0

在建筑师...

一个。你去按钮的配置,和

湾。搜索事件绑定,以及

C。按下右侧的 [+] 按钮。

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

e. 选择 TAP 事件

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

G。按完成

H。鼠标右键

一世。转化为行动

j. 选择[新控制器]或现有控制器

ķ。如果您选择新控制器,请给它一个名称,然后瞧,您的处理程序就在控制器中。

于 2012-06-10T07:26:15.433 回答