sencha touch 2 history.back()不起作用?

时间:2012-06-05 15:54:33

标签: touch extjs sencha-touch-2

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

controllers: ['HomeController'],

和我的HomeController路线

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

在第2页和第3页我有一个按钮

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

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

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

如果它在MVC的情况下不起作用那么什么是soln? 或者还有其他办法吗?

3 个答案:

答案 0 :(得分:2)

抱歉,Chris,但history.back()可以与Sencha Touch 2应用程序一起使用。只要你的控制器使用redirectTo(url),标准的history.back()就会按预期运行。

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

答案 1 :(得分:0)

如果您复制旧按钮及其点按事件,则会导致出现此问题的命名冲突。

将所有新按钮重命名为唯一名称,然后删除并再次创建点击事件

答案 2 :(得分:-1)

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

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

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

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