更新AngularJS中的$ localStorage数据后,表中的值没有得到更新

时间:2017-09-21 10:06:58

标签: javascript angularjs html5 local-storage ng-storage

我在AngularJS中有两个组件。一个组件usersList包含一个表

<table>
  <tbody>
    <tr ng-repeat="..."><!--Contains code to repeat the entries in usersList localstorage object--></tr>
  </tbody>
</table>

在页面加载时,此组件从API中获取用户详细信息,并将其存储在$ localStorage中。 其他是editUserProfile表单,其中编辑和删除值

app.component("editUserProfile", {
  ...
  controller: function($localStorage, ...) {
    vm.$storage = $localStorage;
    // Do other things
    // Some event (edit) is successful, update the userslist in $localStorage
    vm.$storage.usersList = response
  }
})

基本上,我正在编辑用户详细信息并通过调用API来删除用户,当成功编辑/删除时,我刷新了usersList这是一个JSON对象的$ localStorage值。

事情一直有效,直到更新数据,但更改不会反映在usersList组件中。我这样做是为了保存对API的调用以便只显示数据。欢迎任何其他想法。

1 个答案:

答案 0 :(得分:1)

请参阅此Plunkr工作。

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

app.controller('mainCtrl', function($scope, $localStorage){
  $scope.$storage = $localStorage;

  $scope.$storage.entity = [];

  $scope.add = function(){
    $scope.$storage.entity.push('New entry');
  }

});

$localStorage似乎应传递$scope

  

引用$ localStorage(或$ sessionStorage)通过引用普通ol&#39;中的$ scope下的钩子。的JavaScript。

您的问题可能来自vm.$storage分配。