使用 angularjs 观察本地存储

Posted

技术标签:

【中文标题】使用 angularjs 观察本地存储【英文标题】:Watching local storage using angularjs 【发布时间】:2015-01-07 22:35:14 【问题描述】:

我正在使用一个名为 ngStorage 的模块来处理本地存储操作。(https://github.com/gsklee/ngStorage)。假设我在本地存储中设置了一个对象 $localStorage.something = true; 如何查看此对象以了解它是否仍可在本地存储中使用? 我试过了:

$scope.$watch($localStorage.something,function(newVal,oldVal)
   if(oldVal!==newVal && newVal === undefined)
     console.log('It is undefined'); 
  
);

基本上,我试图观察用户何时通过 chrome 的控制台手动从本地存储中删除对象。这甚至可能吗??

【问题讨论】:

【参考方案1】:

你可以试试:

$scope.$watch(function ()  return $localStorage.something; ,function(newVal,oldVal)
   if(oldVal!==newVal && newVal === undefined)
     console.log('It is undefined'); 
  
)

【讨论】:

:谢谢,老实说,我认为不可能看到这些变化,但你证明我错了。观看返回我实际需要观看的内容的函数甚至没有让我感到震惊。谢谢^^ 不起作用...我正在使用 ngStorage 和上面代码的精确副本,使用超时来更改 localStorage var;观察者没有运行。 @danm07 该解决方案合乎逻辑,也许问题因 ngStorage 而有所不同。 这可行,但newVal !== undefined 不是newVal === undefined

以上是关于使用 angularjs 观察本地存储的主要内容,如果未能解决你的问题,请参考以下文章

本地存储与 AngularJS $cacheFactory

AngularJS 中会话存储、本地存储和 Cookie 的区别

从angularjs中的本地存储中保存和检索复选框值

不使用观察者无法在本地存储中存储用户详细信息(Firebase和Polymer身份验证)

如何在 VueJs 的本地存储中“观察”新创建的行?

本地存储和云存储之间的区别