2012-03-13 13 views
6

मुझे एक रूप में एक रूप के रूप में एक सेन्चा टच 2 एमवीसी ऐप मिला है। मैं बिना किसी सफलता के नियंत्रक से अपने मूल्य प्राप्त करने की कोशिश कर रहा हूं।सेन्चा टच 2 - फॉर्म मान कैसे प्राप्त करें?

यह कैसे किया जा सकता है? मैं इस के लिए अपना व्यू/कंट्रोलर कोड पोस्ट कर रहा हूं।

दृश्य:

Ext.define('MyApp.view.LoginForm', { 
    extend: 'Ext.form.Panel', 
    config: { 
     fullscreen: true, 
     items: [ 
      { 
       xtype: 'fieldset', 
       title: 'Login', 
       id: 'loginform', 
       items: [ 
        { 
         xtype: 'emailfield', 
         name: 'email', 
         label: 'Email' 
        }, 
        { 
         xtype: 'passwordfield', 
         name: 'password', 
         label: 'Password' 
        } 
       ] 
      }, 
      { 
       xtype: 'button', 
       width: '50%', 
       text: 'Login', 
       ui: 'confirm', 
       id: 'btnSubmitLogin' 
      }, 
      { 
       xtype: 'toolbar', 
       docked: 'top', 
       title: 'MyApp Mobile' 
      } 
     ] 
    } 
}); 

और नियंत्रक:

Ext.define("MyApp.controller.LoginForm", { 
    extend: "Ext.app.Controller", 
    config: { 
     refs: { 
      btnSubmitLogin: "#btnSubmitLogin" 
     }, 
     control: { 
      btnSubmitLogin: { 
       tap: "onSubmitLogin" 
      } 
     } 
    }, 
    onSubmitLogin: function() { 
     console.log("onSubmitLogin"); 
     var values = app.views.LoginForm.loginform.getValues(); 
     TryLogin(values['email'], values['password']); 
    }, 
    launch: function() { 
     this.callParent(); 
     console.log("LoginForm launch"); 
    }, 
    init: function() { 
     this.callParent(); 
     console.log("LoginForm init"); 
    } 
}); 

कोड

console.log("onSubmitLogin"); 

अप करने के लिए जाना होगा और फिर बंद करो।

लॉन्च पर मैं इस का उपयोग करें:

var LoginForm = Ext.create("MyApp.view.LoginForm"); 
Ext.Viewport.add(LoginForm); 

तो, मैं कैसे मान प्राप्त कर सकते हैं?

धन्यवाद

उत्तर

17

ठीक है। कुछ tweaking के बाद जवाब मिला। भविष्य की पीढ़ियों के लिए - यहां समाधान है:

मैंने लॉग इनफॉर्म में id:'loginform' जोड़ा है और फिर, 'रेफर्स' भाग में नियंत्रक में मैंने loginForm: '#loginform' जोड़ा है। सभी

+0

इस के लिए अपना समाधान पोस्ट करने के लिए धन्यवाद! इससे मुझे काफी मदद मिली। –

0

को

var values = this.getLoginForm().getValues(); 

गुड लक का प्रयास करें इस

नियंत्रक:: तो मैं के रूप में उपयोग कर सकता है

 

    Ext.define("mySIMS.controller.LoginForm", { 
     extend : "Ext.app.Controller", 
     config : { 
      refs : { 
       btnSubmitLogin : "#btnSubmitLogin", 
       LoginForm : '#loginform' 
      }, 
      control : { 
       btnSubmitLogin : { 
        tap : "onSubmitLogin" 
       } 
      } 
     }, 
     onSubmitLogin : function() { 
      console.log("onSubmitLogin"); 
      var values = this.getLoginForm().getValues(); 
      console.log(values); 

      //var values = Oreilly.views.LoginForm.loginform.getValues(); 

     }, 
     launch : function() { 
      this.callParent(); 
      console.log("LoginForm launch"); 
     }, 
     init : function() { 
      this.callParent(); 
      console.log("LoginForm init"); 
     } 
    }); 

दृश्य:

 

    Ext.define('mySIMS.view.LoginForm', { 
     extend : 'Ext.form.Panel', 
     config : { 
      id : 'loginform', 
      fullscreen : true, 
      items : [{ 
       xtype : 'fieldset', 
       title : 'Login', 
       items : [{ 
        xtype : 'emailfield', 
        name : 'email', 
        label : 'Email' 
       }, { 
        xtype : 'passwordfield', 
        name : 'password', 
        label : 'Password' 
       }] 
      }, { 
       xtype : 'button', 
       width : '8%', 
       text : 'Login', 
       ui : 'confirm', 
       id : 'btnSubmitLogin' 
      }, { 
       xtype : 'toolbar', 
       docked : 'top', 
       title : 'Mobile' 
      }] 
     } 
    }); 

आशा इस मदद।

+0

कृपया अपने समाधान के बारे में अधिक वर्णनात्मक बनें। संदर्भ लें: [उत्तर कैसे दें] (http://stackoverflow.com/questions/how-to-answer) – askmish

संबंधित मुद्दे