2012-06-05 108 views
0

我正在使用sencha touch 2 MVC應用程序。在我的app.js文件我沒有推出()方法和sencha touch 2 history.back()不起作用?

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的情況下不起作用那麼什麼是soln? 還是有其他方法可以做到這一點?

回答

-1

history.back()重定向到上一個URL。 sencha touch應用程序包含在一個URL中,沒有任何重定向。它通過彼此堆疊一堆容器來工作。但是,它們都包含在同一頁面中,因此history.back()將不起作用。

你需要改變你對sencha touch應用程序中重定向的看法。基本上,爲了返回,你需要切換視圖。您可以使用以下代碼執行此操作:

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

此代碼將視圖從當前視圖切換到您選擇的xtype。

+3

這並不完全準確。你可以對路由使用redirectTo('url'),然後處理該路由的函數應該是執行'setActiveItem'調用的函數。 – Subimage

2

對不起,Chris,但是history.back()可以與Sencha Touch 2應用程序一起使用。只要你的控制器使用redirectTo(url),標準的history.back()將按預期運行。

因此,如果在控制器中,您從當前網址重定向到另一個網址,重定向後使用history.back()將返回到原始網址。

0

如果您複製了舊按鈕及其輕擊事件,而不是導致此問題的命名衝突。

將所有新按鈕重命名爲唯一名稱,並再次刪除並創建輕擊事件