2015-07-24 9 views
5

I wurde auf einer Anwendung arbeiten, die 2 abstrakte Staaten mit verschachtelten Staaten erfordert, unten ist die Beispielkonfigurationionisch-Winkel mehr verschachtelten und abstrakte Zustände

$stateProvider 
.state('app', { 
    url: "/app", 
    abstract: true, 
    templateUrl: "templates/menu.html", 
    controller: "AppController" 
}) 
.state('app.screenList', { 
    url: "/app/screenList", 
    views: { 
    'menuContent': { 
    templateUrl: "templates/screenList.html", 
    controller: "ScreenListController" 
    } 
    } 
}) 
.state('app.screen1', { 
    url: "/app/screen1", 
    views: { 
    'menuContent': { 
    templateUrl: "templates/screen1.html", 
    controller: "Screen1Controller" 
    } 
    } 
}) 
.state('app.subapp', { 
    url: "/app/subapp", 
    abstract: true, 
    views: { 
    'menuContent': { 
    templateUrl: "templates/subapp.html", 
    controller: "SubAppController" 
    } 
    } 
}) 
.state('app.subapp.screen1', { 
    url: "/app/subapp/screen1", 
    views: { 
    'subappContent': { 
    templateUrl: "templates/subappscreen1.html", 
    controller: "SubAppScreen1Controller" 
    } 
    } 
}) 

screenList Die Zustandsanzeigen Bildschirmliste zu wählen. Wenn folgende Navigation geschieht, funktioniert alles einwandfrei

screenList > screen1 Press Zurück-Taste und dann subapp.screen1

in diesem Stadium Werke Drücken zurück.

Interessanterweise, wenn ich versuche, folgende Navigation durchzuführen, stoppt der Rücken zu reagieren und nichts passiert.

screenList > screen1 Press Zurück-Taste und dann subapp.screen1 Press Zurück-Taste und dann wieder subapp.screen1 (In diesem Stadium Taste wieder keine Wirkung. Auch die App nicht beendet.)

Ich bin völlig ratlos, warum es passiert, die einzige Schlussfolgerung, zu der ich kam, ist, wenn ich nacheinander versuche, in die subapp.screen1 zu gelangen, entsteht das Problem. Wenn ich zwischen subapp.screen1 und screen1 umschalte, funktioniert alles einwandfrei.

Ich möchte die Rücktaste sollte reagieren, egal wie der Staat geschaltet wurde.

Antwort

0

Basierend auf this post, habe ich endlich die Dinge funktionieren.

In tabs.html erkläre ich eine Registerkarte wie folgt aus:

<ion-tab title="ServOOps Mobile" icon="ion-person-stalker" ui-sref="app.tabs.external-index"> 
<ion-nav-view name="tab-servicos"></ion-nav-view> 

Und in app.js ich so:

.state('app', { 
    url: '/app', 
    abstract: true, 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl' 
}) 

    .state('app.tabs', { 
    url: "/tabs", 
    views: { 
    'menuContent': { 
     templateUrl: "templates/tabs.html" 
    } 
    } 
}) 

.state('app.tabs.external-index', { 
    url: '/external-index', 
    views: { 
     'menuContent': { 
      templateUrl: 'templates/external-index.html', 
      controller: 'ExternalIndexCtrl' 
     }, 
     'tab-servicos': { 
      templateUrl: 'templates/external-index.html', 
      controller: 'ExternalIndexCtrl' 
     } 
    } 
}) 

Und das funktioniert gut. Jetzt habe ich mein Seitenmenü und meine Tabs auf dieser Seite.

Sie müssen dies für die anderen Registerkarten wiederholen.

Und denken Sie daran, in diesem ich den externen Index zu den Registerkarten verknüpfen, so jetzt, der Link zu der Seite wird #/app/tabs/external-index.html sein.