技術

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

関連記事

自分のEvernoteをブログとして公開できる『Postach.io』を使ってみました

こんにちは。たなかです。 自分のEvernoteをブログとして公開できる『Pos …

no image

【ionic】Android build Error: Uh oh!(ええとああ!)

どうも中田です。 環境をいろいろとupdateしたら $ionic build …

[Xcode]Provisioning Profileの中身を確認する方法

こんにちは。たなかです。 以前『[Xcode]Provisioning Prof …

[Cocos Creator] java.util.NoSuchElementException

どうも中田です CocosCreatorでビルド後、AndroidStudioで …

github500

[GitHub] 突然プッシュできなくなったときの確認事項

こんにちは。佐藤です 今回はGitHubに突然プッシュできなくなったときの確認事 …