Sencha Touch - Redirect zu einer anderen Ansicht

Baue ich eine Sencha-Touch-Anwendung und Kampf mit umleiten oder ändern einer anderen Ansicht nach dem login. Nach dem login muss ich es auf Startseite. Aber meine unten code in der Login-Controller authenticateUser()funktioniert nicht.

Versucht mit Ext.Viewport.push(homePanel) , Ext.Viewport.setActiveItem(homePanel) auch. Aber nichts funktioniert.

LoginView

Ext.define("Mobile.view.LoginView", {
extend: "Ext.form.FormPanel",
alias: "widget.mylogin",
id: 'loginFormPanel',

config: {


    name: 'loginform',
    frame: true,
    url: 'login/Authenticate',
    title: 'Login',
    items: [

      {
          xtype: 'fieldset',
          itemId: 'LoginFieldset',
          margin: '10 auto 0 auto ',
          title: '',
          items: [

                {
                    //User Name field def
                },

                {
                    //Pwd Field Def
                }
            ]
      },
        {
            xtype: 'button',
            id: 'loginButton',           
            text: 'Login',
            action: 'login'
        }

    ]
}

});

Login-Controller

Ext.define("Mobile.controller.LoginController", {
extend: "Ext.app.Controller",
views: ['LoginView', 'HomeView'],
models: ['UserModel'],
config: {
    refs: {
        loginForm: "#loginFormPanel"
    },
    control: {
        'button[action=login]': {
            tap: "authenticateUser"
        }
    }
},

authenticateUser: function (button) {
            loginForm.submit({
            method: 'POST',
            success: function (form, result) {
            //THIS IS NOT WORKING
                Ext.Viewport.add(Ext.create('Mobile.view.HomeView'));

            },
            failure: function (form, result) {                   
                console.log('Error');
                Ext.Msg.alert('Check the logic for login and redirect');
            }
        });
       }           
});

Home-Ansicht

Ext.define('Mobile.view.HomeView', {
extend: 'Ext.Container',
id: 'homescreen',
alias: "widget.homepanel",
 config: {
    layout: {
        type: 'card',
        animation: {
            type: 'flip'
        }
    },
    items: [
        {
            xtype: 'toolbar',
            docked: 'bottom',
            id: 'Toolbar',
            title: 'My App',
            items: [
                {
                    id: 'settingsBtn',
                    xtype: 'button',
                    iconCls: 'settings',
                    ui: 'plain',
                    iconMask: true
                }
            ]
        },
        {
            xclass: 'Mobile.view.ActionListView'
        }
    ]
},
});

App.JS

Ext.application({
name: "Mobile",
controllers: ["LoginController", "HomeController"],
views: ['LoginView', 'HomeView', 'ActionListView'],
models: ['UserModel', 'OrganizationModel', 'ActionModel'],
stores: ['OrganizationStore', 'ActionStore'],
launch: function () {

    var loginPanel = Ext.create('Ext.Panel', {
        layout: 'fit',
        items: [
            {
                xtype: 'mylogin'
            }
        ]
    });
    Ext.Viewport.add(loginPanel);
}

});

Jemand eine Idee?
Die bereits erwähnte Laden einer anderen Ansicht nach dem login mit sencha touch 2.0 . Aber es gibt keine Antwort . Bitte helfen Sie

die Fehler kommen? Wenn ja,bitte angeben.
Keine Fehler zeigt. Ich habe mit der Konsole.melden Sie auch. Es erfolgt mit der out-Fehler. Aber Ansicht ist nicht zu ändern. Cant wir einfach die Ansicht ändern, wie Ext.Viewport.hinzufügen(Ext.create('Mobile.Blick.HomeView')); ?
Zunächst bin ich das hinzufügen login-Ansicht in app.js lauch-Funktion über die gleichen Wege. Jetzt will ich ersetzen Sie es mit der neuen Ansicht auch sollte nicht zulassen, dass Benutzer wieder auf die login-Seite, sobald Sie authentifiziert werden.

InformationsquelleAutor Murali Murugesan | 2012-10-09

Schreibe einen Kommentar