技術

【ionic】$ionicHistory.clearCache()が効かぬ!

投稿日:

どうも中田です。

 

ログアウトしたら、viewの情報を初期化したい!ですよね

 
 

よくあるログアウト後にログイン画面が表示されるアプリで
キャッシュクリアのコードを書いてたのですが、これが効かない。。。

 

今日はそんなお話です。

 
 

修正前

(略)

$ionicHistory.clearHistory();
$ionicHistory.clearCache();

(略)

 
これをやってもデバッグしたところ$ionicHistoryには、
各ナビゲーションのhistory情報が残ってました。。

 
いろいろ調査したところこれでした。
 

修正後

(略)

$timeout(function(){
  $ionicHistory.clearCache();
  $ionicHistory.clearHistory();
}, 500);

(略)

ポイント

  • clearCache -> clearHistory の順番で実施すること
  • $timeoutを使ってキャッシュクリアを非同期実行すること
     
    clearCacheでViewにdestroyフラグを立てて、clearHistoryで消す!
    非同期で実施!

 
ionicのバージョンが新しいとpromiseを返すので

$ionicHistory.clearCache().then(function(){
  ...
});

って書き方ができるみたいですがね。
 

感謝サイト
feat: Add a method to empty/flush Cached Views

-技術
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

【ionic】バックボタンの文字だけ消す

どうも中田です。 今回はHTML5ハイブリッド開発でお馴染みのionicについて …

no image

Macで簡単にIE環境を構築する手順

こんにちは、コーテッグの小山です。 今までちょろっとIE対応をやることはあったの …

no image

[Angular]リアクティブフォームでのセレクトボックスの扱い方。

Angularはまだ本が少ないので、リアクティブフォームの説明は基本的なところも …

no image

wordpressでcommon.min.cssが勝手に読み込まれる

こんにちは wordpressで自作テンプレートを作っている時に、見た目が崩れた …

no image

[Angular] リアクティブフォームの値をtsファイルで設定する。

こんにちは、コーテッグの小山です。 Angularのリアクティブフォームについて …