技術

【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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

[リアクティブフォーム]バリデーションチェックを任意のタイミングで走らせる。

Angularのリアクティブフォームで使っていると、 バリデーションを後付けした …

no image

Angular6で子コンポーネントに文字列を渡す

文字列と変数の値を渡す時、記述が少しだけ違います。 // 文字列を渡したい時 & …

no image

AWS CLIでInvalidSignatureException Error

ECRにイメージをpushするために、dockerログインしようとして遭遇しまし …

Dockerでwheneverが動かない (bundler: failed to load command: bin/rails (bin/rails))

どうも中田です。 久々の投稿になります。 正確にはwheneverで登録したcr …

no image

[Rails]Deviceのfacebook認証でinvalid_credentials….

こんばんは Deviceでfacebook認証機能を作っていたらinvalid_ …