2012-04-27 63 views
1

我的視圖(MyFormPanel)如何從視圖派遣到控制器煎茶Touch2與PhoneGap的

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採用煎茶touch2與PhoneGap的1.4 。當我嘗試移動視圖到登錄按鈕上的控制器單擊處理函數來調用控制器,我收到錯誤,Ext.dispatch沒有被定義爲函數。 告訴我如何將視圖移動到控制器的實際方式,反之亦然。 感謝

回答

0

Ext.dispatch不煎茶使用觸摸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} 
} 
0

並在建築師...
a。你去按鈕的配置,並 b。搜索事件處理程序,並且 c。您按下右側的[+]按鈕。 d。添加「基本處理程序」 e。選擇TAP事件 f。給它一個名字(onButtonSendTap或其他) g。按DONE h。鼠標右鍵 i。轉換爲行動 j。選擇[New Controller]或現有的控制器 k。如果你選擇新的控制器,給它起一個名字 和voilla,你在控制器中有你的處理程序。

0

and in Architect ...

a。你去按鈕的配置,並

b。搜索事件綁定,並且

c。您按下右側的[+]按鈕。 d)。添加「基本處理程序」

e。選擇TAP事件

f。給它起個名字(onButtonSendTap或其他)

g。按DONE

h。右鼠標

i。轉化爲行動

j。選擇[新控制器]或現有的控制器

k。如果你選擇新的控制器,給它起一個名字 和voilla,你在控制器中有你的處理程序。