質問: ### 前提・実現したいこと OnsenUIv2+AngularJSv1.5でハイブリッドアプリを開発しています。 作りはTabbar+Navigatorで複数タブを持ちながら、タブごとに画面遷移をしています。 (タブ数分、Navigatorを定義しています) ここで疑問なのですが、複数のタブから呼ばれる共通画面Zがあり、 画面Aからnavi1.pushPage("画面Z.html") 画面Bからnavi2.pushPage("画面Z.html") 画面Zから他のページに遷移したい場合、navi1.pushPageかnavi2.pushPageどちらをすればいいか判断をする方法が知りたいです。 もしくは、判断せずともpushPageが可能な方法などありましたらご教授頂けたらと思います。 ### 試したこと pushPage時に、自NavigaterをpushPageの第二引数に格納して次ページで取得すればよいかと思いましたが、受け取り時もどのnavigatorで受け取ればいいか判断がつかず・・・。
回答: 解決したように思います。 まず、(私が作っているアプリは4タブあるのですが)、4タブ分のnavigatorのprepushイベントにGlobalなNavi変数へnaviをコピー ``` var gnavi; ons.ready(function() { navi.home.on('prepush', function(event) { gnavi = event.navigator; }); navi.manage.on('prepush', function(event) { gnavi = event.navigator; }); navi.atten.on('prepush', function(event) { gnavi = event.navigator; }); navi.config.on('prepush', function(event) { gnavi = event.navigator; }); }); ``` pushPageされた共通画面側のControllerにてNaviをGloabalからコピーしておく ``` module.controller('xxxxxController',function($scope,$http,$timeout){ $scope.init = function(){ $scope.navi = gnavi; $scope.id = $scope.navi.topPage.data.id; } }); ``` ただ、この方法だと、html上から直接navigatorを指定できず、全てControllerでpushPageを記述する必要がありそうです。が、思惑通りの挙動はできたっぽいです。 ご回答頂いた方、ありがとうございました。大変参考になりました。