navigator.resetToPage()の際にnavigator.getPages()が正しい値を返さない
onsen-uiのnavigatorを利用しています。ページスタックがある場合のみ「戻る」ボタンを表示するようにしたいのですが、navigator.resetToPage()
から発生するprepush, postpushイベント内ではnavigator.getPages()が正しい値を返さないようです。
navigator.on("prepush", function(e) {
var pages = navigator.getPages();
console.log(pages.length); //1
});
navigator.on("postpush", function(e) {
var pages = navigator.getPages();
console.log(pages.length); //2
});
navigator.resetToPage("pages/hoge.html");
resetToPage直後のprepush, postpush内のnavigator.getPages()ではpushPageのときと同じ値(上のコードではprepush:1, postPush:2)が返ります。もし、そこまでにページスタックが3つ貯まっていれば、prepush:3, postPush:4 になります。
ページスタックがクリアされるため、どちらも本来はprePush:0、postPush:1が返るべきだと思います。resetToPage後、もう一度pushPageをするとクリア後の正しい値(prepush:1, postPush:2)が返ります。
こちらの現象を回避する方法はありませんでしょうか。resetToPageのコールバックでonTransitionEndを設定すると、その中では正しい値が返るようですが、prePush、postPushを利用したいです。