2014-07-08 24 views
0

我已經使用選項卡創建了一個基本應用程序。我的應用程序中有兩個標籤,分別是NEW和DISPLAY。Ionic/AngularJS。重定向到另一個標籤

當我在NEW標籤的時候,我重定向到在顯示選項卡中的項目:#/標籤/顯示/ 1

然後當我點擊顯示選項卡,或者如果我點擊NEW標籤,然後DISPLAY再次顯示相同的項目頁面 - 並且DISPLAY選項卡正在使用DisplayItemCtrl而不是DisplayCtrl。換句話說,我無法回到原始的DISPLAY頁面(#/ tab/display)。

有沒有辦法清除歷史或其他方式來解決這個問題?

如果我第一次訪問DISPLAY標籤頁,然後再進入NEW標籤頁來創建一個項目,它就會起作用,就像路由被緩存了一樣,但是如果我在啓動應用時沒有訪問DISPLAY頁面並創建一個新的項目,它不會工作。

這些都是我的狀態:

.state('tab.new', { 
    url: '/new', 
    views: { 
    'tab-new': { 
     templateUrl: 'templates/tab-new.html', 
     controller: 'NewCtrl' 
    } 
    } 
}) 

.state('tab.display', { 
    url: '/display', 
    views: { 
    'tab-display': { 
     templateUrl: 'templates/tab-display.html', 
     controller: 'DisplayCtrl' 
    } 
    } 
}) 

.state('tab.display-item', { 
    url: '/display/:id', 
    views: { 
    'tab-display': { 
     templateUrl: 'templates/display-item.html', 
     controller: 'DisplayItemCtrl' 
    } 
    } 
}) 

我創建了一個簡單的標籤應用上codepen只是爲了說明問題。 http://codepen.io/anon/pen/GInjq首先去Dash,然後點擊「重定向到朋友」。之後,將無法訪問Friends標籤頁的開始頁面。

回答

0

你試過從你的標籤狀態重定向?

對於前:

<ion-tab title="Contact" icon="ion-ios7-world" ui-sref="tab.display"> <ion-nav-view name="contact-tab"></ion-nav-view> </ion-tab>

+0

現在嘗試了,它沒有區別。 – user1121487

0

看到文檔

http://ionicframework.com/docs/api/directive/ionTab/

<ion-tab 
    title="Tab!" 
    icon="my-icon" 
    href="#/tab/tab-link" 
    on-select="onTabSelected()" 
    on-deselect="onTabDeselected()"> 
</ion-tab> 

創建一個函數,onTabSelected點擊選項卡時被調用,使得UI路由器犯規管理它

+0

仍然無法正常工作。在DisplayCtrl和DisplayItemCtrl中都創建了$ rootScope.onTabSelected函數,並使用了$ state.go('tab.display'),但是如果我轉到'tab.display',該頁面仍然使用#/ tab/display/1路徑在#/ tab/display路徑之前訪問過。 – user1121487

+0

把你的代碼放在codePen中 –

1

這是一篇舊帖子,但我仍然找到了解決方法,如果有人有這個問題,請看我的question

在於把ng-click="onTabSelected()"的選項卡,在分配給選項卡中的控制器:

$scope.onTabSelected = function() { 
    $state.go("tab.home"); 
} 

這樣,總是標籤被觸摸它會導致我想要的狀態,而不是首先顯示或無論如何,我希望它對某人有用,那麼解決問題的行爲看起來就像離子中的錯誤。