2012-08-17 76 views
1

我是Sencha的新手。任何人都可以請解釋如何在Android中使用Sencha touch2路由支持後退按鈕。我已經通過了Sencha文件,他們在那裏用「#products/123」等senarios解釋。但在我的情況下,只有意見得到改變,而不是像「../index.html」那樣的網址。在Sencha使用路由的後退按鈕支持

讓我們考慮我有一個登錄頁面。在登錄按鈕點擊它導航到主頁。現在在設備後退按鈕上,它應該導航回登錄。那麼我應該把什麼格式放在路由中:{}。

請任何人用簡單的代碼解釋我。

在此先感謝。

回答

0
在你的按鈕操作

你應該重定向這樣的:

control: { 
     'button[action=login]' : { 
      tap: function() { 
       this.redirectTo('login'); 
      } 
     } 

然後添加路由在你的控制器:

config: { 
    refs: { 
     main: 'main' 
    }, 

    routes: { 
     'login': 'showLogin' 
    } 
} 

終於在showDetail功能您做出的觀點變了,URL應顯示類似index.html#的詳細信息:

showLogin: function() { 
    this.getMain().push({ 
     xtype: 'loginView' 
    }); 
} 

我希望這有助於!

0

您還可以通過定義後退按鈕及其引用來更好地控制自己,而不是使用默認值。

Ext.define('Mov.view.BackButton', { 
    extend: 'Ext.Button', 
    alias: 'widget.backbutton', 

    config: { 
     hidden: true, 
     id: 'back', 
     ui: 'back', 
     text: 'Back', 
     backStack: { 

     } 
    }, 

    addToBackStack: function(dispatchOptions) { 
     var found = false; 
     this.backStack.forEach(function(el) { 
      found = found || (Ext.encode(el) == Ext.encode(dispatchOptions)); 
     }); 
     if (!found) { 
      this.backStack.push(dispatchOptions); 
     } 
     this.show(); 
    }, 

    clearBackStack: function() { 
     this.backStack = []; 
     this.hide(); 
    }, 

    handler: function(button, event) { 
     var dispatchOptions = this.backStack.pop(); 

     Ext.dispatch(dispatchOptions); 

     if(this.backStack.length === 0) { 
      this.hide(); 
     } 
    } 
}); 

然後在您的應用的導航欄上應用此小部件。 (on初始化視圖的初始化效果很好)。

nav = this.getNavigationBar(), 
nav.setBackButton(Ext.widget('backbutton')); 

@jurodr有一個很好的路由,引用和控制的例子,這個自定義組件很適合。