質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

1671閲覧

OnsenUI tabberの引継ぎ

sato1108

総合スコア14

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2018/05/22 08:53

編集2018/05/24 05:41

前提・実現したいこと

<ons-tabbar>を使用してタブを遷移させているのですが、その中のボタンから.pushPageで遷移した際に<ons-tabbar>もそのまま引き継ぎたいのですがやり方がわかりません。
http://www.sky-limit-future.com/entry/2017/08/26/011314
上記のURLの方法で引き継げますと書かれていますが、あまりわからずに困っています。
URLの方法でなくても構いませんのでもしご存じの方いらっしゃいましたら助言頂けると幸いです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

html

1 <script> 2 $scope.newInfoSetting = function (){ 3 //遷移先で必要な情報を取得し、遷移した際に表示するjsvascript 4 myNavigator.pushPage('infotoolnavigator.html'); 5 } 6 </script> 7 8<body ng-controller="AppController as app"> 9 10 <ons-navigator var="myNavigator" page="login.html"> 11 //最初のページ遷移先 12 <ons-template id="login.html"> 13 <ons-page> 14 <div id="topBack"> 15 <img src="default.png" width="100%" onclick="myNavigator.pushPage('startup.html')"> 16 </div> 17 </ons-page> 18 </ons-template> 19 20//ログイン完了後遷移先 21<ons-template id="mainmenu.html"> 22<ons-page> 23 <!--ツールバー設定--> 24 <ons-toolbar> 25 <div class="left"> </div> 26 <div class="center" style="text-align: center;">{{app.title}}</div> 27 <div class="right"> 28 <ons-icon icon="cog" size="20px" ng-click="newInfoSetting()"></ons-icon> 29 </div> 30 31 <!-- タブバー関連 --> 32 <ons-tabbar position="bottom"> 33 <!--画面1--> 34 <ons-tab page="infonavigator.html" label="***" icon="ion-home" active></ons-tab> 35 <!--画面2--> 36 <ons-tab page="second/page2.html" label="***" icon="square"></ons-tab> 37 <!--画面3--> 38 <ons-tab page="third/page3.html" label="****" icon="square"></ons-tab> 39 <!--画面4--> 40 <ons-tab page="fourth/page4.html" label="****" icon="square"></ons-tab> 41 <!--画面5--> 42 <ons-tab page="fifth/page5.html" label="***" icon="square"></ons-tab> 43 </ons-tabbar> 44</ons-page> 45</ons-template> 46 47<ons-template id="login.html"> 48 <ons-page> 49 <div id="topBack"> 50 <img src="default.png" width="100%" onclick="myNavigator.pushPage('login/startup.html'"> 51 </div> 52 </ons-page> 53</ons-template> 54 55<ons-template id="infotoolnavigator.html"> 56 <ons-navigator var="infotoolnavigator" page="new_info/setting.html"> 57</ons-template> 58 59<ons-template id="infonavigator.html"> 60 <ons-navigator var="infonavigator" page="new_info/list.html"> 61</ons-template> 62 63 64 65</body>

html

1//setting.html(ファイル名) 2page1-1 3<ons-page id="setting.html"> 4 内容記載 5 <ons-button onclick="myNavigator.pushPage('new_info/setting2.html')">push</ons-button> 6</ons-page> 7

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

タブを引き継ぐとは、こちらのような動作のことでしょうか?
回答の中にあるコードをMonacaにペーストすれば動作しますので試してみてください。

上記で間違いなければ、同様の質問はこちらこちらにもあります。
ある程度ons-navigatorについて解説していますので内容を確認してみてください。

【追記コード】
index.html

html

1<!DOCTYPE HTML> 2<html> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 6<meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> 7<script src="components/loader.js"></script> 8<script src="lib/onsenui/js/onsenui.min.js"></script> 9 10<link rel="stylesheet" href="components/loader.css"> 11<link rel="stylesheet" href="lib/onsenui/css/onsenui.css"> 12<link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css"> 13<link rel="stylesheet" href="css/style.css"> 14 15<script> 16ons.ready(function() { 17console.log("Onsen UI is ready!"); 18}); 19 20document.addEventListener('show', function(event) { 21var page = event.target; 22var titleElement = document.querySelector('#toolbar-title'); 23 24if (page.matches('#first-page')) { 25titleElement.innerHTML = 'My app - Page 1'; 26} else if (page.matches('#second-page')) { 27titleElement.innerHTML = 'My app - Page 2'; 28} 29}); 30</script> 31</head> 32<body> 33 34<ons-navigator id="mainNavigator" page="tabMain.html"> 35 36<ons-template id="tabMain.html"> 37<ons-page> 38<ons-toolbar> 39<div class="center" id="toolbar-title"></div> 40</ons-toolbar> 41<ons-tabbar position="bottom"> 42<ons-tab active label="検索" icon="fa-search" page="navigator1.html"> 43</ons-tab> 44<ons-tab label="マイページ" icon="fa-user" page="navigator2.html"> 45</ons-tab> 46<ons-tab label="メッセージ" icon="fa-envelope-o" page="navigator3.html"> 47</ons-tab> 48<ons-tab label="その他" icon="fa-ellipsis-h" page="navigator4.html"> 49</ons-tab> 50</ons-tabbar> 51</ons-page> 52</ons-template> 53 54<ons-template id="navigator1.html"> 55<ons-navigator id="navigator1" page="tab1-1.html"> 56</ons-template> 57 58<ons-template id="navigator2.html"> 59<ons-navigator id="navigator2" page="tab2-1.html"> 60</ons-template> 61 62<ons-template id="tab2-1.html"> 63 <ons-page> 64 tab2-1 65 <ons-button onclick="navigator2.pushPage('tab2-2.html')">push</ons-button> 66 </ons-page> 67</ons-template> 68 69<ons-template id="tab2-2.html"> 70 <ons-page> 71 tab2-2 72 <ons-button onclick="navigator2.popPage()">pop</ons-button> 73 </ons-page> 74</ons-template> 75 76<ons-template id="navigator3.html"> 77<ons-navigator id="navigator3" page="tab3-1.html"> 78</ons-template> 79 80<ons-template id="tab3-1.html"> 81 <ons-page> 82 tab3-1 83 <ons-button onclick="navigator3.pushPage('tab3-2.html')">push</ons-button> 84 </ons-page> 85</ons-template> 86 87<ons-template id="tab3-2.html"> 88 <ons-page> 89 tab3-2 90 <ons-button onclick="navigator3.popPage()">pop</ons-button> 91 </ons-page> 92</ons-template> 93 94<ons-template id="navigator4.html"> 95<ons-navigator id="navigator4" page="tab4-1.html"> 96</ons-template> 97 98<ons-template id="tab4-1.html"> 99 <ons-page> 100 tab4-1 101 <ons-button onclick="navigator4.pushPage('tab4-2.html')">push</ons-button> 102 </ons-page> 103</ons-template> 104 105<ons-template id="tab4-2.html"> 106 <ons-page> 107 tab4-2 108 <ons-button onclick="navigator4.popPage()">pop</ons-button> 109 </ons-page> 110</ons-template> 111 112</body> 113</html>

tab1-1.html

html

1 <ons-page> 2 tab1-1 3 <ons-button onclick="navigator1.pushPage('tab1-2.html')">push</ons-button> 4 </ons-page>

tab1-2.html

html

1 <ons-page> 2 tab1-2 3 <ons-button onclick="navigator1.popPage()">pop</ons-button> 4 </ons-page>

【追記2】

html

1//setting.html(ファイル名) 2page1-1 3<ons-page id="setting.html"> 4 内容記載 5 <ons-button onclick="infonavigator.pushPage('new_info/setting2.html')">push</ons-button> 6</ons-page>

投稿2018/05/22 09:15

編集2018/05/24 09:11
akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sato1108

2018/05/23 03:40

ありがとうございます。 htmlを載せたのですが、ツールバーの詳細をクリックするとツールバーとタブバーを引き継いで***.htmlページに飛びたいのですが、ページ自体は全体のページ数が多く、indexに全て書きたくなかったので、別ページにあります。 こういった場合は引継ぎは難しいでしょうか。
akabee

2018/05/23 13:33

問題ないですよ。 ****.htmlは単一のページですか?それともタブごとに異なる詳細ページですか? どちらであってもリンク先のページのコードを例にすることで実現できると思います。 イメージと違う場合は、どのように違うか教えて頂ければDaiki1108さんのコードで実現できるかどうか考えてみます。
sato1108

2018/05/24 00:48 編集

ツールバーのソースをのせていませんが、タブごとに違うツールバーを表示させて、タブごとに異なる詳細ページへ遷移させるといった形です。それぞれのタブの詳細ページからまた2,3ページ遷移させますが、全てにmainmenu.htmlのタブを共通で持たせたいと思っています。 上記のソースだと、 <ons-navigator var="myNavigator" page="login.html"></ons-navigator> で一番初めにタブを持たないログインページへ飛んで、ログインが完了したら myNavigator.resetToPage('mainmenu.html');(ソースに記載はないですが) でmainmenu.htmlに飛んできてそこから全てでタブを持たせたいと思っています。 飛ばす為だけに定義している<ons-navigator var="myNavigator" page="login.html"></ons-navigator>の書き方がそもそもいけないのでしょうか?
akabee

2018/05/24 02:25

何も問題はないですよ。私の認識通りだと思います。 リンク先のコードで実現できますので試してみてください。 試してみた結果、イメージと違いましたか?
sato1108

2018/05/24 03:04

上記のリンクの様な動きでイメージ通りです。 しかし、自分の今作成しているソースと違ったのでソースコードの内容を修正させて頂きました。 別ページにあるという意味は別ファイルにあるという意味です。別ファイルの<ons-page>の中に飛ぶという感じです。そこにタブを引継ぎたいのですが、いまいちわからなくて。。。伝えるのが下手ですみません。
akabee

2018/05/24 04:07

リンク先のコードを一部修正して、「別ファイルのons-pageの中に飛ぶ」ということを実現してみましたがこういうことですか? tab1-1.htmlとtab1-2.htmlを参照してください。 恐らくons-templateが理解できていないと思います。ons-templateはそのタグで囲まれている範囲のコードを疑似的なhtmlとして扱うようにするという機能です。ons-template内に記載されているコードをそのまま別ファイル化すれば、ons-templateで記載されていたときと同様に動作します。 ただしポイントはそこではなくてons-navigatorを複数定義しているところです。ons-tabが指すpageをons-navigatorが定義されているhtmlとし、それを起点として画面遷移を行えばons-tab毎に別々の画面遷移を行うことができます。
sato1108

2018/05/24 05:33

そういうことで概ね合っているのですが、ons-template自体はやはりindexに記載するしかないでしょうか。 自分のソースに当てはめて試したのですが、どうにも引き継げません。新しく記載したソースにはツールバーからの遷移とtabの内容からの遷移で引き継げるか試した例を記載します。どこか悪いでしょうか。
akabee

2018/05/24 09:15

回答に追記しました。【追記2】を参照してください。 恐らくsetting.htmlで利用しているons-navigatorをmyNavigatorでなくinfonavigatorにすれば良いのだと思いますが。 しかしタブバーの画面1で表示しているのはinfonavigator.htmlでありnew_info/list.htmlが表示されますよね?その内部のコードはどんなものですか? setting.htmlはinfotoolnavigator.htmlで表示されるようですがその画面はタブバーのどこからも呼ばれていませんよね。このあたりの画面設計は正しいですか? 個人的には、new_info/list.htmlの中で利用している画面遷移のためのons-navigatorを、myNavigatorでなくinfonavigatorにすべきだと思います。
sato1108

2018/05/25 01:29

ありがとうございます。うまくいきました! おっしゃる通りでした。。。navigatorの引継ぎがうまくできていなかった為でした。ありがとうございます。説明が下手ですみません。
akabee

2018/05/25 01:42

最初は手探りかもしれませんが、頑張ってください。 もしプログラミング初心者であれば、プログラㇺの一行一行には必ず意味がありますので、 ひとつひとつの理解を先送りにせずすべてを理解していくほうが、最終的なスキルは高くなります。
sato1108

2018/05/25 02:58

その通りですね。 肝に銘じてやっていこうと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問