2017-01-12 8 views
0

マイページには3つのタブがあります。もしtab3から次のページに移動し、$ ionicHistory.goBack()を使用してそのページから戻ると、それはtab1にリダイレクトされます。それをtab3にリダイレクトする方法

function sample($scope,$ionicHistory){ 
      $ionicHistory.goBack(); 
     }; 

    } 

答えて

0

私はそれを$ stateを通して行うことはできません。私は12月(2016年)に私の最初の覗き見をしたので、私は自分自身がイオニックに慣れていません。しかし、私はこの正確なシナリオを持っていた。これが私が解決した方法です。

私の場合、私はタブを使用していませんでした。代わりに、私は "タブ番号"に応じて見える3つの異なるDIVを持っていました。ビューを初期化するとき、私はそれを "1"に設定し、そのプロパティを使って実行されるコードを制御します。

あなたが使用しているコントロールには、必要な特定のタブを識別して設定するプロパティがあります。これは、タブクリック時にタブを変更する可能性が最も高いためです。そのプロパティ "tab#"の値をコントローラが使用する適切なサービスに入れることを検討してください。これは、ファクトリを介して定義された私のサービスの1つで、実際のコードを削除したものです。

YourService.js:ここ

// controllers are instances. When navigating away, state is lost. This 
    // tracks the tab we wish to view when we load the home page. 
    var activeHomePageTab = 1; 

    var service = { 
     getActiveTab: getActiveTab, 
     setActiveTab: setActiveTab, 
     ... 
    }; 

    return service; 

    //////////////// 

    function getActiveTab() { return activeHomePageTab; } 
    function setActiveTab(num) { activeHomePageTab = num; } 
    ... 

、機能はプライベートです。あなたのコントローラで、あなたのタブを設定するときにも、このプロパティを設定してください。シングルトンとして、アプリケーションが実行されている間は有効です。

次は、コントローラがロードされたとき、あなたのinit()ルーチンでは、このプロパティをチェックし、それが定義されている場合、タブを設定します。もちろん

function init() { 
    var tab = YourService.getActiveTab(); 
    if (tab !== undefined) { 
     setTab(tab); 
    } else { 
     setTab(1) 
    } 
    ... 
} 

を、他の方法があります - 多分値を使用してまたはConstantオブジェクトのプロパティです。

関連する問題