2016-04-28 8 views
-1

私はローカルストレージを使用してゲーム内で1つの番号(最高得点)を保持しており、ゲームをプレイするとうまくいきます。トップスコアが正しく表示されますが、アプリを完全に閉じてからもう一度開くと、最高のスコアが消えてしまいます。ローカルストレージ内のデータは、アプリケーションの終了後には保持されません。

コントローラー:

$scope.$on("$ionicView.beforeEnter", function() { 

    if(window.localStorage.getItem("topscore")<$rootScope.totalscore){ 

     window.localStorage.setItem("topscore", $rootScope.totalscore); 
     window.localStorage.setItem("password", "yessir"); 
     $scope.bestscore=window.localStorage.getItem("topscore"); 
    } 

    }); 

HTML:

BESTSCORE: {{bestscore}} 

実際のiPhone 6のデバイスにイオンフレームワークとテストを使用。助けをありがとう

+0

"date"は "data"であるべきですか? – RobG

答えて

1

アプリケーションが起動したときにこの関数が呼び出された場合、rootスコープにtotalScore値がまだ設定されていない可能性があります。それにもかかわらず、あなたは "topscore"キーの下でローカルストレージに値を設定しているようです。

基本的には、アプリケーションが起動するたびにキーを上書きしています。

1

このビットはおそらくあなたのものが起動するときに値が常に読み込まれるようにif節の外にあるべきです。 localStorageは文字列のみを扱うので、型変換も追加しました。

$scope.bestscore = parseInt(localStorage.getItem("topscore") || "0", 10); 
関連する問題