2014-07-08 17 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"); 
} 

这样,总是标签被触摸它会导致我想要的状态,而不是首先显示或无论如何,我希望它对某人有用,那么解决问题的行为看起来就像离子中的错误。