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

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

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

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Monaca

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

Q&A

解決済

1回答

1360閲覧

Monaca+Ionic controllers.jsについて

giwagiwagiwa

総合スコア34

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Monaca

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

0グッド

0クリップ

投稿2017/08/29 00:43

Monaca + Ionicでアプリ開発をしています。

画面遷移したときに
controllers.jsに記述したロジックの処理が初回しかとおりません。
二回目移行遷移した場合はcontrollers.jsのロジックは動作しないのでしょうか。

画面遷移時はhrefで飛んでいます。

javascript

1[controllers.js] 2.controller('TopCtrl', function($scope) { 3 alert('画面遷移しました'); 4})

javascript

1[app.js] 2 .state('tab.top', { 3 url: '/top', 4 views: { 5 'tab-top': { 6 templateUrl: 'templates/tab-top.html', 7 controller: 'TopCtrl' 8 } 9 } 10 })

html

1[tab.html] 2<ion-tabs class="tabs-icon-top tabs-color-active-positive"> 3 4 <!-- Top Tab --> 5 <ion-tab title="トップ" icon-off="top-off" icon-on="top-on" href="#/tab/top"> 6 <ion-nav-view name="tab-top"></ion-nav-view> 7 </ion-tab> 8 9 <!-- Second Tab --> 10 <ion-tab title="セカンド" icon-off="second-off" icon-on="second-on" href="#/tab/second"> 11 <ion-nav-view name="tab-second"></ion-nav-view> 12 </ion-tab> 13</ion-tabs>

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

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

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

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

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

guest

回答1

0

ベストアンサー

ionicはpageをキャッシュして効率化するので、キャッシュされている間はコントローラーは初回しか呼ばれません

page毎にキャッシュ機能をオフにすることはできて、いくつかやり方はあるのですが
ionic v1なら以下のようにui-routerを設定するのが簡単です。

[app.js] .state('tab.top', { url: '/top', views: { 'tab-top': { templateUrl: 'templates/tab-top.html', controller: 'TopCtrl', cache: false } } })

ですが、これだとせっかくionicが用意しているキャッシュ機能をうまく使えなく、勿体無いです。

ですので、そういった場合

.controller('TopCtrl', function($scope) { alert("controller entered") $scope.$on('$ionicView.enter', function() { alert("view entered"); }); })

と専用のイベントを補足して初期化処理を行います。

投稿2017/08/29 10:34

h_daido

総合スコア824

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

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

giwagiwagiwa

2017/08/29 23:53

やはりキャッシュでしたか・・・ ありがとうございます!思い通りの動作になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問