javascript - 加载本地存储后 Angular 应用程序中断

标签 javascript angularjs local-storage

我正在开发一个简单的 angularjs 应用程序,它可以创建列表并允许用户通过 local-storage 将任何内容存储在这些列表中。用户能够保存他们的列表并在稍后从 local-storage 再次打开它们并继续向它们添加项目。

问题是一旦加载,用户就无法向任何列表中添加其他项目。

我假设一旦加载数据,我就不能使用相同的对象。

  this.saveLists = function() {
    localStorage["lists"] = JSON.stringify(this.lists);
  };

  this.loadLists = function() {
    this.lists = JSON.parse(localStorage['lists']);
  };

我在 plunker.co 创建了一个示例

发生这种情况是因为我先将数组字符串化然后再解析它吗?

最佳答案

当您对数组进行 JSON 字符串化时,您将失去 addValue 函数。我修改了你的 plunker 以在按钮下方显示 JSON.stringified 列表(你可以看到缺少 addValue 函数):

enter image description here

因此当列表被保存和重新加载时,列表数据被恢复,但“addValue”函数没有。

要实现此功能,您可以将 addValue 函数移动到您的 Controller :

app.controller('TempController', function($scope) {      
  ...    
  this.addValue = function(list, value){
    list.values.push(value);
  }      
}

并在 HTML 中连接 ng-click:

<button type="button" ng-click="tmpCtrl.addValue(list, valueTyped);valueTyped = ''">
     Add Value
</button>

这是一个工作 Demo Plunker

关于javascript - 加载本地存储后 Angular 应用程序中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319721/

相关文章:

javascript - 当我切换标签时如何修复进度重置

javascript - 将 jQuery 添加到动态 JS-DOM 对象

javascript - AngularJS:在异步验证器完成之前阻止表单提交

javascript - 在多次打开的列表之间移动

Javascript:在多个选项卡中播放一次音频

javascript - LocalStorage - 检测本地存储是否已满

javascript - 使用 HTML5 本地存储保存多个值

javascript - 手动触发 jquery Datatable 搜索

javascript - 加载带有嵌入 javascript 文件的本地 HTML 页面 DotNetBrowser

javascript - Node、Express、Angular 路由错误