2015-01-14 52 views
0

後離子後退按鈕不會隱藏我有一個離子應用程序,它有一個搜索模板,可以通過關鍵字查詢帖子。我還有一個服務,將該帖子作爲另一個視圖的列表返回。所有這一切運作良好。在提交搜索表單

我的搜索控制器使用:

$state.go('app.search.results', {'searchId': hash}); 

,這樣我可以有用於該搜索一個唯一的URL。我需要這個獨特的URL來實現'後退'功能,這樣,如果用戶點擊列表中的一個帖子,在查看帖子後如果他們決定點擊回帖,他們會看到搜索結果仍然(通過默認情況下他們將返回到搜索表單而沒有任何結果了)。

要允許一個返回到搜索結果我實現了自定義後退按鈕功能,並把它像這樣的離子後退按鈕元素:

<ion-nav-back-button ng-click="goBack()"> 

,然後設置一個自定義函數:

$scope.goBack = function() { 

    $window.history.back(); 

} 

所有這一切都運行良好,我可以返回到搜索結果並查看它們,基本上非常像普通的瀏覽器後端功能。

對我來說,問題在於,當我通過後退按鈕完成'返回'時,我的初始狀態包含'後退'按鈕,並且點擊它不會到達任何地方,'返回'按鈕仍然顯示。離子後退按鈕不應該在那裏,但在這種情況下並不如此。任何有關如何檢查歷史記錄耗盡並有條件地隱藏後退按鈕的想法將不勝感激。

編輯:

這裏是一個jsFiddle;注意:在新的單獨的選項卡中打開小提琴以查看後退按鈕問題。 FYI搜索在菜單中。

+0

我最終沒有使用嵌套狀態'app.search.results'並將我的結果視圖更改爲單獨的狀態''app。結果「,非常類似於側邊菜單示例離子應用程序的玩家和玩家單個視圖。唯一缺點是我喜歡在具有搜索表單的相同視圖上顯示結果,以避免再次搜索。這是一個讓搜索結果在從帖子返回時保持不變的折衷方案,但我可以使用內置的後退按鈕功能(並且它可以工作!)。 – mfink

回答

1

我與Ionic合作的幾個疑點之一就是他們的「智能」導航。我自己遇到了很多問題。我的解決方案是創建一個我自己的後退按鈕,這個後退按鈕存儲以前的狀態和它們的參數,以便您可以返回而不會丟失搜索結果,例如您的場景。

該組件提供給你一個返回按鈕和麪包屑使用(或者你可以使用後退按鈕)

它是開源的,並隨時用它!

jscBreadcrumbs

Strange Milk - Breadcrumbs Post

這是您的jsfiddle與jscBreadcrumbs實施和工作:

jsFiddle

jscbreadcrumbs 
+0

有趣的想法,並感謝分享。我會牢記這一點。 – mfink

0

您使用$window.history.back(),我認爲你應該使用改爲。它可以以離子的方式控制歷史,觀察和狀態。