Angular 6:将数据保存到本地存储

新手上路,请多包涵

我有一个显示来自外部 API 的数据的数据表,我希望表页面上的项目/元素的数量应该保存在本地存储中

这是我到目前为止所尝试的:

  ngOnInit() {
  this.moviesService.getPopularTVShows().subscribe(res => {
    this.dataSource = new MatTableDataSource(res.results);
    this.dataSource.paginator = this.paginator;
    this.dataSource.sort = this.sort;
    localStorage.setItem(this.dataSource, this.dataSource.length);
    console.log(localStorage.length);
  });
}

当我运行我的应用程序时,控制台显示 undefined

我的代码有什么问题?欢迎任何帮助或建议,新手尝试新东西。

原文由 The Dead Man 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 744
2 个回答

您应该在将数据存储到本地存储时定义一个键名,该键名应该是一个字符串,值应该是一个字符串

 localStorage.setItem('dataSource', this.dataSource.length);

并打印,你应该使用 getItem

 console.log(localStorage.getItem('dataSource'));

原文由 Sajeetharan 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 localStorage 来存储 json 数据:

示例如下:-

 let JSONDatas = [
    {"id": "Open"},
    {"id": "OpenNew", "label": "Open New"},
    {"id": "ZoomIn", "label": "Zoom In"},
    {"id": "ZoomOut", "label": "Zoom Out"},
    {"id": "Find", "label": "Find..."},
    {"id": "FindAgain", "label": "Find Again"},
    {"id": "Copy"},
    {"id": "CopyAgain", "label": "Copy Again"},
    {"id": "CopySVG", "label": "Copy SVG"},
    {"id": "ViewSVG", "label": "View SVG"}
]

localStorage.setItem("datas", JSON.stringify(JSONDatas));

let data = JSON.parse(localStorage.getItem("datas"));

console.log(data);

原文由 Miyas Mohammed 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题