2017-09-06 86 views
-2

我正在使用jstorage來存儲本地數據,並且顯示在html頁面中是否存在一個JavaScript庫,只要本地存儲數據發生更改,它應該會自動更新視圖? 我綁角,但找不到我可以遵循的任何示例。實時更新html列表

+0

你要找的數據綁定,上傳你有什麼,人們會看一看。 – Ian

+0

存儲監聽器[mdn](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API) –

+2

localStorage不會自行更改。你將不得不更新它的價值,所以沒有必要注意它的改變。無論何時更新其值,都會觸發視圖刷新。你有沒有說cou找不到任何Angular的例子?就像在互聯網上一樣? –

回答

0

如果您正在使用angular,您可以$watch更改localStorage並根據您的模型更新。

事情是這樣的:

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()'如果你需要,但視圖應該自動刷新。 –