当代码进入“成功”或“失败”块时,导航到另一个视图

时间:2012-05-06 17:51:33

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

以下代码是我的Controller类的一部分;

1。)当代码进入SuccessFailure块时,我需要程序导航到另一个视图,该视图将显示Registration ViewInformation View

 Ext.Ajax.request({
                        url: 'http://call.com/the_webservice',
                        params : values,

                        failure: function (response) {
                        var text = response.responseText;
                         // SHOW SIGN UP SCREEN

                        },                              success: function (response) {
                        var text = response.responseText;
                         // GO TO ANOTHER VIEW AND IT WILL SHOW THE USER WITH SOME INFORMATION

                        }

                        });

更新

在app.js

views: ['Main','HomePage','Register'],

launch: function() {

        // Destroy the #appLoadingIndicator element
        Ext.fly('appLoadingIndicator').destroy();

        // Initialize the main view
        Ext.Viewport.add(Ext.create('app.view.Main'));

                Ext.Viewport.add(app.view.Register);

    },

然后在按下ControllerPage.js按钮...

success: function (response) {
                            var text = response.responseText;
                            var result = Ext.decode(response.responseText);
                            Ext.Viewport.setActiveItem(0);

                             console.log("success");

                            }

控制台日志success被打印,但视图未导航到Register视图

更新2

我没有使用tabPanel,在我的代码中,我使用tabBarPosition: 'bottom',来显示屏幕底部的标签。你能告诉我如何在视图之间导航,包括tabbarpanel。以下代码是我的Main.js,这是我包含标签的地方。

Ext.define("app.view.Main", {
    extend: 'Ext.tab.Panel',


    config: {
        tabBarPosition: 'bottom',

        items: [
            {
                xtype:'formReq'

            }
        ]
    }

});

1 个答案:

答案 0 :(得分:1)

你的问题不是很精确。 然而,如果你问如何在页面之间导航,这一切都取决于它们的设置方式。 假设您将两个视图(RegistrationView和InformationView)添加到应用程序视口(Ext.ViewPort):

Ext.Viewport.add(MyApp.view.RegistrationView)
Ext.Viewport.add(MyApp.view.InformationView)

然后您需要做的就是:

Ext.Ajax.request({
                    url: 'http://call.com/the_webservice',
                    params : values,

                    failure: function (response) {
                    var text = response.responseText;
                    Ext.ViewPort.setActiveItem(0);

                    },                              
                    success: function (response) {

                    var text = response.responseText;
                    Ext.ViewPort.setActiveItem(1);
});

这只是一种做法(也许不是最好的)。 希望这有帮助。