2016-11-06 45 views
0

我正在開發一個帶有sencha extjs的移動應用程序。我想讓我的應用程序支持android手機上的後退按鈕,然後我想出使用sencha路線可以解決這個問題。我有很多意見使用路線和一些意見相互關聯。因此,一些視圖控制器需要參數。例如,要查看視圖,請在視圖中查看視圖操作的偵聽器。Sencha通過參數調用路由

viewA : function(obj1, obj2){ 
    //obj1, obj2 are required to open that view 
    this.redirectTo('myViewA', ture); 
} 

在路由控制器

routes: { 
    'myViewA' : { 
     action: 'onMyViewA' //method onMyViewA to view viewA 
    } 
}, 
{ 
    onMyViewA : function(){ 
     //view viewA need parameter obj1, obj2 
    } 
} 

我的問題是,我怎麼可以傳遞參數OBJ1,OBJ2路由控制器?或任何解決方案來解決這個問題。謝謝。

回答

0

當您註冊的路線,你可以添加參數如下:

routes: { 
    'myViewA/:id1/:id2' : { 
     action: 'onMyViewA' //method onMyViewA to view viewA 
    } 
}, 
{ 
    onMyViewA : function(id1, id2){ 
    } 
} 

並且在視圖參數添加到像這樣的路線:

viewA : function(id1, id2){ 
    if (id1 && id2) 
     this.redirectTo('myViewA/' + id1 + '/' + id2, true); 
} 

檢查文檔routesthis link獲取更多信息。您也可以驗證參數。

如果您的obj1obj2是複雜的對象,則需要編寫一些自定義邏輯,將這些對象存儲在某處並僅放入id或對路由的url的某種引用。

0

您可以在&符號的幫助下傳遞參數。您可以通過如下數據 www.any.com/any/#param1 & value1 & param2 & value2。 然後你可以用相應的鍵值對分離出這些標記。 但你不能通過url傳遞對象。