1

Sencha は初めてですが、うまく機能するログイン フォームがあり、必要に応じて ajax 経由でフォーム要素を投稿します。onSuccess で、localStorage.token にデータを保存してから、次のページに移動します。私が望むのは、アプリがロードされたときに、すでに localStorage.token にデータがある場合、2 ページ目に直接移動することです。setActiveItem を試しましたが、望ましい結果が得られませんでした。

ここに私のapp.jsがあります:

    //<debug>
Ext.Loader.setPath({
    'Ext': 'touch/src'
});
//</debug>

Ext.application({
    name: 'axis3',
    //profiles: ['Phone', 'Tablet', 'Desktop'],


    requires: [
        'Ext.MessageBox'
    ],

    views: ['Login','Main'],
    controllers:['Login','Main'],

    icon: {
        '57': 'resources/icons/Icon.png',
        '72': 'resources/icons/Icon~ipad.png',
        '114': 'resources/icons/Icon@2x.png',
        '144': 'resources/icons/Icon~ipad@2x.png'
    },

    isIconPrecomposed: true,

    startupImage: {
        '320x460': 'resources/startup/320x460.jpg',
        '640x920': 'resources/startup/640x920.png',
        '768x1004': 'resources/startup/768x1004.png',
        '748x1024': 'resources/startup/748x1024.png',
        '1536x2008': 'resources/startup/1536x2008.png',
        '1496x2048': 'resources/startup/1496x2048.png'
    },

    launch: function() {
        // Destroy the #appLoadingIndicator element
        Ext.fly('appLoadingIndicator').destroy();
        // Initialize the login view
        Ext.Viewport.add([
            { xtype: 'loginview' },
            { xtype: 'mainview' }
        ]);
        Ext.Ajax.setUseDefaultXhrHeader(false);// needed to enable cross domain request.
    },

    onUpdated: function() {
        Ext.Msg.confirm(
            "Application Update",
            "This application has just successfully been updated to the latest version. Reload now?",
            function(buttonId) {
                if (buttonId === 'yes') {
                    window.location.reload();
                }
            }
        );
    }
});

ご協力ありがとうございます

4

1 に答える 1

1

トークン チェックの結果に基づいて、必要なビューを 1 つ追加します。

launch: function() {
    // Destroy the #appLoadingIndicator element
    Ext.fly('appLoadingIndicator').destroy();

    var hasToken = this.hasToken();
    if (hasToken)
        Ext.Viewport.setActiveItem({ xtype: 'mainview' });
    else
        Ext.Viewport.setActiveItem({ xtype: 'loginview' });

    Ext.Ajax.setUseDefaultXhrHeader(false);// needed to enable cross domain request.
},
于 2013-08-01T15:27:24.400 に答える