2016-09-13 128 views
0

我有父狀態順序和子狀態表和文章。點擊'表'離子視圖中的點擊事件會將我重定向到'文章'視圖。當我在「文章」視圖中按硬件後退按鈕時,url更改,但狀態相同(order.article)。 這裏是我的代碼背面的離子嵌套狀態不會改變狀態

app.js

.state('order', { 
    url: '/order', 
    abstract: true, 
    templateUrl: 'templates/order/index.html' 
    }) 
    .state('order.tables', { 
    url: '/tables', 
    views: { 
     'order-tables': { 
     templateUrl: 'templates/order/tables.html', 
     controller: 'OrderCtrl' 
     } 
    } 
    }) 
    .state('order.article', { 
    url: '/article', 
    views: { 
     'order-article': { 
     templateUrl: 'templates/order/article.html', 
     controller: 'ArticleCtrl' 
     } 
    } 
    }) 

訂單/ index.html的

<ion-nav-view name="order-tables"></ion-nav-view> 
<ion-nav-view name="order-article"></ion-nav-view> 
<ion-nav-view name="order-unpaid"></ion-nav-view> 
<ion-nav-view name="order-undone"></ion-nav-view> 

訂單/ tables.html

<ion-view> 
    <ion-content> 
    <div class="bar bar-header bar-light" style="position: relative;"> 
     <h1 class="title">Nova porudzbina</h1> 
    </div> 
    <ion-list> 
     <a ng-click="chooseItem(table.stoID)"> 
     <ion-item collection-repeat="table in tables"> 
      {{table.brojStola}} 
     </ion-item> 
     </a> 
    </ion-list> 
    </ion-content> 
</ion-view> 

另外,當我將我的離子視圖放入選項卡時,狀態在後退按鈕上發生變化。

<ion-tabs> 
    <ion-tab title="Tables" href="#/order/tables"> 
     <ion-nav-view name="order-tables"></ion-nav-view> 
    </ion-tab> 
    <ion-tab title="Articles" href="#/order/articles"> 
     <ion-nav-view name="order-articles"></ion-nav-view> 
    </ion-tab> 
</ion-tabs> 

我不需要標籤,但我不明白爲什麼在某些情況下,它正常工作,並在otner沒有。

回答

0

ui-view意義上說,您將從其父「訂單」狀態進入'order.article'狀態,並且由於您的應用'訂單'狀態爲'抽象狀態',因此ui-view默默地失敗並保持相同狀態。但是在ion-tabs的情況下,您的離子在內部部分使用ui-view,並且它適當地製作並將您的標籤分配給'訂購'父項(忽略您的抽象狀態)。在這種情況下,當你轉到'order.article'它的父狀態成爲命令,這就是爲什麼你可以通過後退按鈕切換到標籤頁

+0

我無法查看抽象狀態的頁面。我明白那個。 'order.table'和'order.articles'是我正在訪問的狀態。從'order.table'中,當我進入'order.tables'(在後退按鈕)時,我去了'order.articles'和'order.articles',我得到了完全相同的視圖('articles'),但是URL chandes到'/#/ order/tables' – neeev