0

我正在使用 sencha touch 2 MVC 应用程序。在我的 app.js 文件中,我没有 launch() 方法,并且

controllers: ['HomeController'],

和我的 HomeController 路线

       routes: {
        '': 'viewHomePage',                       //1st page
        'ap': 'viewContactPage',                  //2nd page
        'ap/:id': 'viewContactPageById'           //3rd page
       //others
    }

在第二页和第三页我有一个按钮

xtype:'button',
listeners: {
                    tap: function () {
                        history.back();
                    }
                }

现在的问题是 history.back() 在 page2 的情况下不起作用。但它在第 3 页的情况下效果很好。

如果这是特殊情况,那么如何重新启动我的应用程序。

如果它在 MVC 的情况下不起作用,那么解决方案是什么?还是有其他方法可以做到这一点?

4

3 回答 3

2

对不起,克里斯,但 history.back() 可以与 Sencha Touch 2 应用程序一起使用。只要您的控制器使用redirectTo(url),标准的history.back() 就会按预期运行。

因此,如果在控制器中您从当前 url 重定向到另一个,在重定向后使用 history.back() 将使您返回到原始 url。

于 2012-07-21T02:51:05.073 回答
0

If you have copied old buttons and their tap events than you have a naming conflict which causes this problem.

Rename all your new buttons to unique names and delete and create the tap events again

于 2013-05-02T15:08:07.213 回答
-1

history.back() 重定向到上一个 URL。sencha touch 应用程序包含在单个 URL 中,没有任何重定向。它通过将一堆容器彼此叠放来工作。但是,它们都包含在同一页面中,因此 history.back() 将不起作用。

您需要改变在 sencha touch 应用程序中考虑重定向的方式。基本上,为了“返回”,您需要切换视图。您可以使用以下代码执行此操作:

 Ext.Viewport.setActiveItem({
      xtype: 'yourxtype'
 });

此代码将视图从当前视图切换到您选择的 xtype。

于 2012-06-25T11:07:54.893 回答