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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

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

Onsen UI

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

Monaca

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

Q&A

解決済

1回答

600閲覧

関数内からonsenuiの操作をAnglarjsで行い、ページ遷移する方法を教えてください。

HML

総合スコア11

HTML5

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

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

Onsen UI

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

Monaca

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

0グッド

0クリップ

投稿2019/11/22 18:33

編集2019/11/23 16:32

前提・実現したいこと

MonacaでAngularJS+Onsenuiを利用して会員登録ページを作成しています。
ons-navigator内にons-tabbarを入れて入力項目ごとにページを遷移してたいと考えております。
1ページ入力ごとに入力確認をしたいので、入力後にOKボタンを押したらページ遷移でなく、関数を呼び出し、Localstrageにデータを入力して、入力に問題なければページを遷移したいと考えております。
当初tabbarを利用しないで作成していたのですが、作成ステップを明確化したいのと最終確認前に各Stepに戻れるようにしたいと思い、作り直しているところでわからなくなってしまいました。

html

1 <ons-navigator var="myNavigator"> 2 <ons-page ng-controller="pageCtrl as pctrl"> 3 <ons-toolbar id="toolbar"> 4 <div class="center">{{pctrl.title}}</div> 5 </ons-toolbar> 6 <ons-tabbar position="top"> 7 <ons-tab page="step1.html" label="Step1" icon="walking" active></ons-tab> 8 <ons-tab page="step2.html" label="Step2" icon="walking"></ons-tab> 9 <ons-tab page="step3.html" label="Step3" icon="walking"></ons-tab> 10 <ons-tab page="step4.html" label="Step4" icon="walking"></ons-tab> 11 </ons-tabbar> 12 </ons-page> 13 </ons-navigator> 14 <!-- Step1:ニックネーム入力画面 --> 15 <ons-template id="step1.html"> 16 <ons-page id="Step1Page" ons-show="pctrl.title = 'ニックネーム入力'"> 17 <div class="content" ng-app="myApp"> 18 <div class="main"> 19 <form> 20 <div class="box02" style="position: absolute; left: 5%; top: 10%;"> 21 <p style ="font-size:25pt;color: #1028fd;text-align:center;line-height:70px;">利用登録</p> 22 <p style ="font-size:15pt;text-align:center;">ニックネームを決めてください</p> 23 <div class="cp_iptxt" style="position: absolute; left: 5%; top: 30%;"> 24 <ons-input id="NickNameBox" modifier="underbar" placeholder="ニックネーム:10文字以内推奨" name="NickNameBox" style="font-size:14pt;"></ons-input> 25 <i class="fa fa-user fa-lg fa-fw" aria-hidden="true"></i> 26 </div> 27 28 <ons-button onclick="localStorageSetItem();" class="btn-all-radius" style="position: absolute; left: 10%; top: 70%" required><center>OK</center></ons-button> 29 <input type="button" value="戻る" onClick="location.href='index.html'" class="btn-all-radius" style="position: absolute; left: 55%; top: 70%"> 30 </div> 31 </form> 32 </div> 33 </div> 34 </ons-page> 35 </ons-template> 36 37 <!-- Step2:生年月日入力画面 --> 38 <ons-template id="step2.html"> 39 <ons-page id="Step2Page" ons-show="pctrl.title = '生年月日'"> 40 <div class="content" ng-app="myApp"> 41 <div class="main"> 42 </div> 43 </div> 44 </ons-page> 45 </ons-template> 46

javascript

1<script> 2 // モジュールの定義 3 var myApp = ons.bootstrap('myApp',[]); 4 /** 5 * 画面遷移用コントローラ 6 */ 7 myApp.controller('pageCtrl', function() { 8 // タブバーを取得 9 var tabbar = document.querySelector("ons-tabbar"); 10 // 1つ目のタブへ遷移 11 this.changeStep1Tab = function(){ 12 tabbar.setActiveTab(0); 13 }; 14 // 2つ目のタブへ遷移 15 this.changeStep2Tab = function(){ 16 tabbar.setActiveTab(1); 17 } 18 // 3つ目のタブへ遷移 19 this.changeStep3Tab = function(){ 20 tabbar.setActiveTab(2); 21 } 22 // 4つ目のタブへ遷移 23 this.changeStep4Tab = function(){ 24 tabbar.setActiveTab(3); 25 } 26 }); 27</script> 28<script> 29 var KEY = "NickName"; 30 // ローカルストレージをセットします。 31 function localStorageSetItem() { 32 if(document.getElementById("NickNameBox").value==""){ 33 alert("ニックネームが入力されていません") 34 }else{ 35 localStorage.setItem(KEY, JSON.stringify(document.getElementById("NickNameBox").value)); 36 location.href = 'step2.html'; 37 } 38 } 39</script>

わからないこと

関数localStorageSetItem()で入力確認後(ニックネーム)にページ内遷移を行いたいのですが、現在のコードでは別ファイルのEntryPage2.htmlに遷移するようになっています。
関数内からonsenuiの操作をAnglarjsで行うことはできるのでしょうか?

該当のソースコード

html

1<ons-button onclick="localStorageSetItem();">OK</ons-button>

javascript

1 function localStorageSetItem() { 2 //※ここでページ内遷移(step2.html)をするコードが書きたい 3 }

関数を使用ない場合の

html

1 <ons-tabbar position="top"> 2 <ons-tab page="step1.html" label="Step1" icon="walking" active></ons-tab> 3 <ons-tab page="step2.html" label="Step2" icon="walking"></ons-tab> 4 </ons-tabbar>

では遷移ができています。

関数内からonsenuiの操作をAnglarjsで行い、ページ遷移する方法を教えてください。
よろしくお願い致します。

追記(2019/11/24)
location.href = 'step2.html';の部分を
myNavigator.bringPageTop("step2.html");やmyNavigator.pushPage("step2.html");
に変更したら遷移はできましたが、tabbarが消えてしまいました。
tabbarを残したまま遷移する方法をお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

投稿2019/11/23 16:48

HML

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問