

トップページをAとして  
A → B → C  
という遷移と  
A → X → Y  
という遷移があります。  
それぞれはpushPage()とpopPage()で行き来できます。

今回、CからYに遷移させたいのですが、その際の戻る操作は以下のように遷移させたいのです。  
しかしその方法がわかりません。  
C → Y → X → A(TOP)

ページスタックを自作するなど方法はありますでしょうか？AngularJSによらない方法だと助かります。  
（※CからTOPに戻れば解決する話ではありますが…）


CC BY-SA 3.0
2017-03-31T10:02:40.560
33670
2022-08-19T00:03:40.373
21300
question
monaca onsen-ui
ページスタックを自作する方法


`ページC`から`ページY`に遷移した場合、ページスタックの`ページB`と`ページC`を削除し、`ページX`を挿入すれば実現できます。

`ons-navigator`のドキュメントも参照してください。  
<https://ja.onsen.io/v2/docs/js/ons-navigator.html>

[code]

    ons.ready(function() {
      document.querySelector("#navigator").addEventListener("postpush", function(e) {
        // page-cからpage-yに遷移したか？
        if ((e.leavePage.name == "page-c.html") && (e.enterPage.name == "page-y.html")) {
          var navi = e.navigator;
          // スタックに4ページ存在するか？
          if (navi.pages.length == 4) {
            // ページCを削除
            navi.pages[2].remove();
            // ページBを削除
            navi.pages[1].remove();
            // ページXを挿入
            navi.insertPage(1, "page-x.html");
          }
        }
      });
    });
    
[/code]


CC BY-SA 3.0
2017-04-01T05:14:57.620
33687
2017-04-01T05:14:57.620
9566
33670
answer