2017-01-24 2 views
0

Ich habe eine Hybrid-Anwendung basierend auf Ionic entwickelt. Jetzt haben wir einen neuen Client, der die gleichen Funktionalitäten erfordert aber, da ich ihm die gleiche App nicht verkaufen können, brauche ich meine App L & F. ändernDynamische Tab-Navigation

Die Zustände werden geladen auf einem Service-Antwort dinamically basiert. Es funktioniert gut, aber mit meinem Team haben wir beschlossen, von einem Seitenmenü zu Tabs Navigation und hier ist das Problem.

Wir würden lieben, die Zustandsdefinition und html so zu lassen, wie es jetzt ist, also in einer Zukunft, wenn ein neuer Kunde kommt, können wir die Anwendung ohne irgendeine Änderung von HTML, nur einige Javascriptflaggen parametrisieren.

Wie dem auch sei, Heres die dynamische Zustandsdefinition:

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

Außerdem habe ich eine Richtlinie, die der Erstellung des Menüs verantwortlich ist. Ich sage es, wenn ich ein Sidebar-Menü oder Tabs Navigation möchte. Anyways, die Registerkarten Struktur es zurückgibt, ist so etwas wie:

<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> 

Also, wenn ich die App die Navigation starten die Navigation verliert es Thread ist. Damit meine ich, dass, wenn ich eine Weile innerhalb der Tab-Ansicht navigiere, dann die erste Registerkarte (menu-generico) drücken, schließlich bekomme ich die Zurück-Schaltfläche aktiviert, aber ich möchte nicht, dass sie aktiviert ist, da die Registerkarte der Stammzustand ist .

Irgendwelche Ideen? Danke!

Antwort

0

wenn Sie nicht wollen, zurück Taste dann,

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

Entfernen Sie diese Zeile. Ionic behält einen separaten Verlauf für Registerkartenansichten bei. Gehen Sie durch folgende Threads mehr darüber zu wissen,

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

+0

Die Sache ist, dass Unterzustände aller Registerkarten durch menu.generico gehen. Also, wenn ich auf einen Tab gehe, der zu menu.generico gehört, bekomme ich einen Zurück-Button, wenn es ein Root-Tab sein soll. Erkläre ich das? Es ist nicht, dass ich nicht eine Zurück-Taste überhaupt wollen – Pablo

+0

Ich brauche eine Möglichkeit, um irgendwie den Navigationsfluss zurücksetzen – Pablo

+0

können Sie den Index der Stamm Registerkarte von bekommen 'var index = $ ionicTabsDelegate.selectedIndex();' und wenn es 0 ist, dann deaktivieren Sie die Schaltfläche Zurück wie '$ ionicNavBarDelegate.showBackButton (false);' – Stallion

0

ich endlich diese Zeilen an die tabChanged Funktion auf meiner Richtlinie hinzugefügt:

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

Also, auf diese Weise, jeder Reiter die Wurzel ist.

Jetzt muss ich nur erkennen, zu welcher Registerkarte jeder Status gehört, um die entsprechende Registerkarte zu aktivieren.

Hoffe jemand finde es nützlich.