Sencha导航视图

时间:2014-01-30 11:20:56

标签: android extjs cordova sencha-touch sencha-touch-2

我正在使用sencha touch 2.3和PhoneGap来创建一个Android应用程序,我对导航视图有问题。

main.js

Ext.define('Myapp.view.Main',{  
extend:'Ext.navigation.View',  
xtype:'mainvi,  
requires:['Myapp.view.RedirectView','Myapp.view.IncomingJobView','Myapp.view.MapView','Myapp.view.DriverLoginFormView','Myapp.view.DashboardView','Myapp.view.AccountView'],  
id:'navview',  
fullscreen:true,  
config:{  
items:[{  
    xtype:'RedirectView',  
}],  
navigationBar: {  
        items: [{  
                xtype: 'button',  
                id:'logoutButtonId',  
                hidden:true,  
                text: 'Logout',  
                align: 'right',  
                handler: function(){}  
            }],  
        docked: 'top'  
      }  
   }  
});  

在这个项目中,登陆页面是RedirectView,一旦我登录,那么下一页就是MapView 我使用以下代码。

Ext.getCmp('navview').push({  
xtype:'MapView'  
});  

当我点击登出按钮时,页面重定向到“RedirectView”页面 获取RedirectView页面后,我无法访问任何其他页面 进入控制台后出现以下警告 [WARN] [Ext.Component#constructor]注册一个已经使用过的id('driverLoginTextId')组件。请确保现有组件已被销毁('Ext.Component#destroy()'。

以下是我的RedirectView.js文件

Ext.define('Myapp.view.RedirectView', {
extend : 'Ext.form.Panel',
xtype : 'RedirectView',
requires : ['Ext.Label'],
config : {
    styleHtmlContent : 'true',
    scrollable : 'false',
    //cls:'GreenBackgroundImage',
    style : {
        'background-image' : 'url(resources/images/background.jpg)',
        'background-repeat' : 'no-repeat',
        'background-size' : '100% 100%'
    },
    //title: 'Register',
    layout : {
        type : 'vbox',
        align : 'center',
        pack : 'center'
    },
    items : [{
            xtype : 'panel',

            items : [{
                    xtype : 'button',
                    id : 'RedirectAirportBtnId',
                    text : 'Airport Transfer',
                    width : '200px',
                    height : '35px',
                    style : {
                        'marginBottom' : '10px'
                    },
                }, {
                    xtype : 'button',
                    id : 'RedirectAsDirectedBtnId',
                    text : 'As Directed',
                    width : '200px',
                    height : '35px',
                    //style:{'marginBottom':'10px'},

                }, {
                    layout : 'hbox',
                    xtype : 'panel',
                    flex : 1,
                    items : [{
                            xtype : 'panel',
                            id : 'signinLinkPanelId',
                            width : '100px',
                            items : [{
                                    layout : {
                                        type : 'vbox',
                                        align : 'center',
                                        pack : 'center'
                                    },
                                    items : [{
                                            xtype : 'label',
                                            html : '<a href="#" style="font-size:17px;text-decoration:none;color:#2E3604;text-align:center" onclick=createLoginPage("passengerLoginTextId");><center>Sign in</center></a>',
                                            styleHtmlContent : true
                                        }
                                    ]
                                }
                            ]
                        }, {
                            xtype : 'panel',
                            id : 'takeATourLinkPanelId',
                            flex : 1,
                            items : [{
                                    layout : {
                                        type : 'vbox',
                                        align : 'center',
                                        pack : 'center'
                                    },
                                    items : [{
                                            xtype : 'label',
                                            html : '<a href="#"  style="font-size:17px;text-decoration:none;color:#2E3604">Take a tour</a>',
                                            styleHtmlContent : true
                                        }
                                    ]

                                }
                            ]

                        }
                    ]
                }, {
                    layout : {
                        type : 'vbox',
                        align : 'center',
                        pack : 'center'
                    },
                    items : [{

                            xtype : 'label',
                            id : 'signinAsDriverLinkId',
                            html : '<a href="#" style="font-size:17px;text-decoration:none;color:#2E3604" onclick=createLoginPage("driverLoginTextId");>Login as driver</a>',
                            styleHtmlContent : true,
                            style : {
                                'marginTop' : '-20px'
                            }
                        }, {
                            xtype : 'label',
                            id : 'registerLinkId',
                            html : '<a href="#" style="font-size:17px;text-decoration:none;color:#2E3604" onclick=redirectToRegisterPage();>Register</a>',
                            styleHtmlContent : true,
                            style : {
                                'marginTop' : '-20px'
                            }
                        }
                    ]
                }
            ]
        }
    ]

}

});

重定向页面有什么错误吗?
如何销毁已在navigationView Array中创建的组件?

1 个答案:

答案 0 :(得分:0)

首先尝试获取您想要推送的视图,如果未找到,则创建ID为

的视图
var myMapView = Ext.getCmp('myMapView');
if(!myMapView){
    myMapView  =  Ext.create('Myapp.view.MapView', { id: "myMapView" });
}

Ext.getCmp('navview').push(myMapView);