質問: monacaとonsenUIを使って勉強しつつハイブリッドアプリを作ってます。 初歩的な質問かと思いますが、Javascriptの記述方法についてわからない部分がありますので、 質問させていただければと思います。 monacaの場合、メインであるindex.htmlの他に、ケースに応じていくつかのhtmlファイルを作成していくかと 思いますが、全てのhtmlファイルのJavascriptは、main.jsファイルを作ってそれに全て記述するという形で 良いのでしょうか。 メインのindex.html以外は、コンポーネントで作成しているので、index.htmlに記述する以外は main.jsに記述する以外にないと思うのですが、Javascriptが効くところと効かないところが出てきてしまいます。 箇所ごとに即時関数で囲んだりしてみたのですが、うまくいきません。 monaca/onsenUIにおけるJavascriptの記述方法について教えていただければ幸いです。 よろしくお願いいたします。
回答: 恐らくons-navigatorを用いて画面遷移しているかと思います。 ons-navigatorはindex.htmlに定義していますよね。ons-navigatorの動きのイメージとしては最初に開いた画面はindex.htmlで、それが常に表示され続けており、ons-navigatorの機能により見た目の画面のみが切り替わっていくイメージです。画面はons-navigatorの機能により切り替わるのですが、読み込んだファイルはindex.htmlからひとつも切り替わっていません。 というわけで、index.htmlに定義してあるJavaScriptはons-navigatorが遷移した先の画面上でも自由に使うことができます。 ここで大事なのは、ファイル分割しようがしまいが、index.htmlで読み込んでおけば自由に使えるということです。 main.jsファイルを作ってそれに全て記述するという形で良いのでしょうか、というご質問ですが、その方式でも良いですし、ファイルを分割したいのであれば、例えばmain.jsとsub.jsを作ってindex.htmlで両方を読み込めば、どちらもすべてのページで利用することができます。