[解決済み] ビューが開かれたり表示されたりするたびにコントローラの関数を実行する
2023-08-19 04:12:21
質問
angular+ionicでアプリを作っているのですが、下部に古典的な3ボタンメニューがあり、その中に3つのion-tabを使用しています。ユーザーがタブをクリックすると、そのテンプレートがui-routerを通して開かれます。
私はこのような状態を持っています。
$stateProvider
.state('other', {
url: "/other",
abstract: true,
templateUrl: "templates/other/other.html"
})
テンプレートでは、次のようなことをしています。
<ion-nav-view name="other" ng-init="doSomething()"></ion-nav-view>
コントローラにdoSomething()関数を書いて、そこで手動で呼び出すことができることは承知しています。しかし、それは私に同じ問題を与えます。誰かがそのビューを開くたびに、doSomething()関数を複数回呼び出す方法を見つけ出すことができないようです。
今、doSomething()関数はうまく呼び出されますが、そのビュー/タブがユーザーによって開かれた最初のときだけです。私は、ユーザーがそのビューまたはタブを開くたびに、(ジオロケーションを更新するために) 関数を呼び出したいと思っています。
それを実装するための正しい方法は何でしょうか?
どのように解決するのですか?
ビューに特定のコントローラを割り当てた場合、ビューがロードされるたびにそのコントローラが起動されます。その場合、例えばこのように、コントローラが起動されたらすぐにコントローラ内のコードを実行することができます。
<ion-nav-view ng-controller="indexController" name="other" ng-init="doSomething()"></ion-nav-view>
そして、コントローラーに
app.controller('indexController', function($scope) {
/*
Write some code directly over here without any function,
and it will be executed every time your view loads.
Something like this:
*/
$scope.xyz = 1;
});
編集します。 状態の変化を追跡し、ルートが変更され、特定のルートにアクセスしたときに何らかのコードを実行するなどの方法を試してみてはどうでしょうか。
$rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams){ ... })
詳細はこちらでご確認ください。 状態変化イベント .
関連
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み] AngularJSで$httpリクエスト中にスピナーGIFを表示する?
-
[解決済み] AngularJSのグローバル変数
-
[解決済み] AngularJSのディープリンクとは何ですか?
-
[解決済み] エラーです。[$injector:unpr] 不明なプロバイダです。ルートプロバイダ
-
[解決済み] Angularのui-routerでデフォルトの状態を設定する方法
-
[解決済み] createspyとcreatespyobjの違いは何ですか?
-
angularjs統合ueditor入門
-
[解決済み] angular.serviceとangular.factoryの比較
-
[解決済み] AngularJSのコントローラからビューにHTMLを挿入する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】angularのonLoadとng-initの違いについて
-
[解決済み] angularJSのSTATEを理解する
-
[解決済み] angularのpostリクエストでpreflightのレスポンスがHTTPステータスコード403で不正になる。
-
[解決済み] Angular ng-repeatの条件付きラップアイテム(ng-repeatのグループアイテム)。
-
[解決済み] 誰かangularjsの$qサービスの使用について説明してください。[重複しています]。
-
[解決済み] controllerAs "プロパティを使用する理由は何ですか?
-
[解決済み] AngularJs .$setPristineでフォームをリセットする
-
[解決済み] Jasmineの "callThrough "と "callFake() "の実用的な例が欲しい
-
[解決済み] コントローラでフィルタを使用するには?
-
[解決済み] 条件に応じて特定のルートにリダイレクトする機能