2017-09-06 17 views
-2

jstorageを使用してローカルデータを保存しています。これは、ローカルストレージデータが変更されると自動的にビューを更新するjavascriptライブラリがhtmlページに表示されますか? 私は角度をつけましたが、私が従うことができる例は見つかりませんでした。htmlリストをリアルタイムで更新する

+0

あなたが持っているもの投稿し、データバインディングを探していると、人々が見てみましょう。 – Ian

+0

ストレージ[mdn](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API)のリスナーがあります –

+2

localStorageは単独では変更されません。あなたはその価値を更新しなければならないので、それが変わるのを見ることはありません。値を更新するたびに、ビューの更新がトリガーされます。そして、あなたはどのような角度の例を見つけることができないと言ったのですか?インターネットのように? –

答えて

0

角度を使用している場合は、localStorageの変更のために$watchを変更し、モデルを更新してください。このような

何か:

angular.module('app', []).controller('ctrl', function($window, $scope, $window) { 
    $scope.$watch(function() { 
    return $window.localStorage.data; 
    }, function(n) { 
    console.log('local storage changed'); 
    $scope.dataFromLS = n; 
    }); 

    $scope.storeOnLS = function() { 
    $window.localStorage.data = $scope.valueToStoreOnLS; 
    }; 
}); 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 

<div ng-app="app" ng-controller="ctrl"> 
    {{dataFromLS}}<br /> 
    <input ng-model="valueToStoreOnLS" /><button ng-click="storeOnLS()">Save on LS</button> 
</div> 

Working demo

+0

そして、変更を監視するのではなく、localStorageを更新するたびにビューの更新をトリガする方法はありますか?それはウォッチャーが一人少ないでしょう。 –

+0

どのようにビューリフレッシュを角度でトリガーしますか?必要があれば –

+0

'$ scope.apply()'が必要ですが、ビューは自動的に更新されます。 –

関連する問題