2016-04-07 6 views
0

私はタブテンプレートに基づいてイオンアプリを持っています。私のアプリの一般的なナビゲーション構造は次のとおりです。ion-nav-back-buttonを使用したイオンナビゲーション問題

-- users (/users) 
    -- user (/users/[id]) 
-- todos (/todos) 
    -- todo (/users/[id]) 
-- settings (/settings) 

そこにはいくつかのネストされたビューがあります(ユーザーとタスク)。私は、次のしている、

.state('tabs', { 
    url: '/tab', 
    abstract: true, 
    templateUrl: 'templates/tabs.html' 
    }) 
    .state('users', { 
    url: '/users', 
    views: { 
     'users-tab': { 
     templateUrl: 'templates/tab-users.html', 
     controller: 'UsersCtrl' 
     } 
    } 
    }) 
    .state('tabs.user', { 
    url: '/users/:userId', 
    views: { 
     'users-tab': { 
     templateUrl: 'templates/user-detail.html', 
     controller: 'UserCtrl' 
     } 
    } 
    }) 
    .state('todos', { 
    url: '/todos', 
    views: { 
     'todos-tab': { 
     templateUrl: 'templates/tab-todos.html', 
     controller: 'TodosCtrl' 
     } 
    } 
    }) 
    .state('tabs.todo', { 
    url: '/todos/:todoId', 
    views: { 
     'todos-tab': { 
     templateUrl: 'templates/todo-detail.html', 
     controller: 'TodoCtrl' 
     } 
    } 
    }) 
    .state('tab.settings', { 
    url: '/settings', 
    views: { 
     'settings-tab': { 
     templateUrl: 'templates/tab-settings.html', 
     controller: 'SettingsCtrl' 
     } 
    } 
    }) 

私のindex.htmlファイルで:

<ion-nav-bar class="bar-light"> 
    <ion-nav-back-button></ion-nav-back-button> 
</ion-nav-bar> 
<ion-nav-view></ion-nav-view> 

thusly定義されている状態で

<ion-tabs class="tabs-icon-only tabs-color-assertive"> 
    <ion-tab icon="ion-ios-pulse-strong" href="#/tab/users"> 
    <ion-nav-view name="users-tab"></ion-nav-view> 
    </ion-tab> 
    <ion-tab icon="ion-ios-pulse-strong" href="#/tab/todos"> 
    <ion-nav-view name="todos-tab"></ion-nav-view> 
    </ion-tab> 
    <ion-tab icon="ion-ios-pulse-strong" href="#/tab/settings"> 
    <ion-nav-view name="settings-tab"></ion-nav-view> 
    </ion-tab>  
</ion-tabs> 

:彼らはそうのように、同じナビゲーションビューに表示されます私はion-nav-back-buttonを使用して、マスター - ディテール・ビューのユーザーとtodosを処理します。これは完全に自動的に動作し、イオンはこれをうまく処理します。 1件を除くtodo(例:/ todos/3)の詳細ビューを別のビュー(users/1など)から参照すると、戻るボタンは表示されず、todosの概要に戻る方法はありません)。タブボタンをクリックしても効果はありませんが、/ todos/3に行く)。

これは予期される動作だと思いますが、とにかく戻るボタンを表示する方法や、いつでもタブボタンをtodosビュー(/ todos)にする方法はありますか?

答えて

0

解決策が見つかりました。それは理想的ではありませんが、機能します。 代わり詳細状態に直接行くの:

$state.go('tabs.todos', { 
    id: 1 
}); 

私が最初にマスタ状態に行き、私は細部の状態に行く約束をして:

$state.go('tabs.todos').then(function() { 
    setTimeout(function() { 
     $state.go('tabs.todos', { 
      id: 1 
     }); 
    }, 100); 
}); 

タイムアウトは厳密には必要ではありません、しかし、私は時々それなしで失敗することがわかった。

関連する問題