2017-01-24 117 views
0

我開發了一款基於離子的混合應用程序。 現在我們有一個新的客戶需要相同的功能,但是,因爲我不能賣給他相同的應用程序,我需要改變我的應用程序器的L & F.動態標籤導航

的狀態裝載dinamically基於服務的響應。它工作得很好,但對於我的團隊,我們決定從側面菜單更改爲製表符導航,這就是問題所在。

我們很想離開狀態定義和HTML,因此,在未來,如果新客戶來了,我們可以參數化應用程序,而無需更改HTML,只需一些JavaScript標誌即可。

反正here's動態狀態定義:

.state('menu.generico', { 
       url: "/trans/:capp/:cmod/:ctr", 
       resolve: { 
        someResolve: function($stateParams,$ionicHistory,$q, CashModals){ 
       }, 
       views: { 
        'menu-generico': { 
         templateProvider: function(){ 
         } 
        } 
       } 
      }); 

再說,我有一個指令,這是負責創建菜單。 我告訴它,如果我想要一個邊欄菜單或標籤導航。 不管怎麼說,它返回的標籤結構是一樣的東西:

<cargar-menu-mobile> 
    <ion-nav-bar class="bar-positive nav-bar-container" nav-bar-transition="ios" nav-bar-direction="back" nav-swipe=""> 
     <ion-nav-back-button class="hide" data-ng-click="myGoBack()"></ion-nav-back-button> 
     <ion-nav-buttons side="right" class="hide"></ion-nav-buttons> 
     <ion-tabs class="tabs-positive tabs-icon-top"> 
      <ion-tab title="Posición" icon="ion-card" ui-sref="menu.generico" ng-click="tabChanged(1)"> 
       <ion-nav-view name="menu-generico" cache-view="false"></ion-nav-view> 
      </ion-tab> 
     </ion-tabs> 
    </ion-nav-bar> 
</cargar-menu-mobile> 

所以,當我開始導航應用程序導航失去它的線程。通過這個,我的意思是,如果我在標籤的視圖內導航一段時間,然後按第一個標籤(menu-generico),最後我得到後退按鈕,但我不希望它被激活,因爲標籤是根狀態。

任何想法? 謝謝!

回答

0

如果你不想後退按鈕然後,

<ion-nav-back-button class="hide" data-ng-click="myGoBack()"></ion-nav-back-button> 

刪除此行。 Ionic爲選項卡視圖維護單獨的歷史記錄。通過以下螺紋的去更多地瞭解它,

https://forum.ionicframework.com/t/keep-main-header-bar-disable-back-button-on/19868

+0

事情是所有標籤的子狀態都經過menu.generico。因此,如果我轉到屬於menu.generico的選項卡,我會得到一個後退按鈕,當它應該是根選項卡時。我解釋嗎?這不是我根本不需要後退按鈕 – Pablo

+0

我需要一種方法來「重置」導航流程 – Pablo

+0

您可以從 var index = $ ionicTabsDelegate.selectedIndex();' 並且如果它是0,則禁用後退按鈕作爲 '$ ionicNavBarDelegate.showBackButton(false);' – Stallion

0

我終於添加了這些線路的tabChanged功能對我的指令:

$ionicHistory.nextViewOptions({ 
     historyRoot: true 
}); 

所以,這樣一來,每個標籤是根。

現在我只需要識別各個狀態屬於哪個選項卡,以激活它的相應選項卡。

希望有人發現它很有用。