2016-06-22 11 views
0

localStorageを使用して、範囲入力の値を角度で更新しようとしています。localStorageを使用した範囲の値の更新角度

これは私が私のHTMLに持っているものです。

input type="range" id="myRange" value={{audio.volume}} min="0" max="1" step="0.01" ng-model="audio.volume" ng-change="adjustVolume()" 

私は範囲の値は動的なものにしたいです。

そして、これは私のJSです:

$scope.adjustVolume = function(){ 
    localStorageService.set("volume",$scope.audio.volume); 
} 

、私はlocalStorageでキー「音量」を保存するために管理し、私はページを更新する場合、範囲のスライダーの位置が1に戻って、この道localStorageはまだ他の番号に設定されています。

範囲の値をlocalStorageの値と同じように、また範囲の位置を保持する方法はありますか。

+0

$ scope.audio.volumeはコントローラで最初に設定されたものは何ですか?コントローラがロードされたときに、ローカルストレージ値に基づいてそれを定義していない可能性があります。場合、私は、このチェック \tを行うページの読み込み(localStorageService.get( "ボリューム")== NULL)で – developthewebz

+0

{ \t \t localStorageService.set( "ボリューム"、 "1");}そう \t {\t localStorageService.set( "volume"、$ scope.audio.volume); \t} のlocalStorageでキー体積が範囲の値が1であることが、存在するdoesntの場合、それは既にのlocalStorageの値となるように存在する場合、私がしたいので。 –

+0

これが実際のコードの場合、論理は "localStorageService.get(" volume ")がnullでない場合、 'volume'のlocalStorageServiceの値を$ scope.audio.volumeに設定します。この段階で$ scope.audio.volumeに値がないと仮定すると、ロジックには単に「localStorageに値がある場合はnullに設定されます」と表示されます。コードを次のように置き換えてみてください。if(localStorageService.get( "volume")== null){localStorageService.set( "volume"、 "1");}; $ scope.audio = $ scope.audio || {}; $ scope.audio.volume = localStorageService.get( "volume"); –

答えて

0

コントローラ内のスコーププロパティを初期化する場合は、localScoreの値を使用して$ scope.audio.volumeの値を割り当てる必要があります。例えば :

$scope.audio.volume = localStorageService.get("volume"); 

しかし、あなたはすでにプロパティ「オーディオ」を初期化場合にのみ動作します。音量は「オーディオ」の唯一の財産である場合は、あなたの初期化は次のようになります。その後、初期化したい:

$scope.audio = {'volume':localStorageService.get("volume")}; 

だから、コントローラの例は次のようになります。

var myApp = angular.module('myApp',[]); 

myApp.controller('MyAudioController', ['$scope', function($scope) { 
    $scope.audio = {'volume':localStorageService.get("volume")};//<--THIS IS IMPORTANT 
    $scope.adjustVolume = function(){ 
    localStorageService.set("volume",$scope.audio.volume); 
    } 
}]); 
+0

私はlocalStorageのvolumeの値を設定するためにこれを行います。 localStorageService.set( "volume"、$ scope.audio.volume); これを保存すると、私の問題は、ページを更新するときに範囲の値が1に戻ることです。そして私はそれをlocalStorageの値と同じにします –

+0

申し訳ありません、私は私の元の答えで "get"の代わりにlocalStorageの "set"メソッドを使いました。私はそれを更新しました - 今はっきりしていることを望みます。 –

0

私は解決しましたこの問題は、変更が発生するたびに値を更新するwatch関数を使用して行います。

  $scope.$watch(function(){ 
      $scope.audio.volume = localStorageService.get("volume");     
      return true; 
     }); 
関連する問題