【问题标题】:Automatically run popup after 24 hours with angularjs使用 angularjs 24 小时后自动运行弹出窗口
【发布时间】:2015-03-10 15:44:35
【问题描述】:

我有一个带有多个选项卡的角度模式弹出窗口。我的要求是当用户单击该弹出窗口上的“关闭”按钮时,需要将该弹出窗口隐藏 24 小时。下次用户访问该页面时(24 小时后),它应该会再次自动弹出。你能告诉我通过使用 angularJS 和本地存储或类似方法来实现这一目标的最佳方法吗?任何帮助将不胜感激。

页面加载时弹出窗口:

 $scope.Event.UI.MyModal.Open(); 
 $scope.Active = {
        Dashboard: true
     };

【问题讨论】:

  • 您已经尝试过什么了吗?你在哪里卡住了?用户是否能够规避这 24 小时的延迟(例如,通过使用不同的浏览器/计算机)是否重要,或者解决方案是否需要安全?
  • @Chris 安全不是问题。这只是一个隐藏 24 小时的弹出窗口。此时,每次用户访问此页面时都会显示此弹出窗口。这有些烦人。那是为什么我们需要将其隐藏 24 小时。

标签: javascript angularjs local-storage


【解决方案1】:

有几种方法可以做到这一点,其中大多数涉及 cookie(我认为不需要本地存储):

  1. 使用原生 javascript 获取/设置 cookie:https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie

  2. 使用angular的$cookie服务读写cookie:https://code.angularjs.org/1.3.14/docs/api/ngCookies/service/$cookies(注意它不会让你设置expiration属性,所以你可以把时间戳放在cookie里面,看看时间是否过去)

  3. 使用一些角度模块来更有效地处理 cookie,如下所示:https://github.com/ivpusic/angular-cookie

【讨论】:

  • 你能告诉我如果时间过去(在 angulajs 控制器内部)如何再次触发弹出窗口吗?
  • @Sampath 与您第一次触发它的方式大致相同...您能显示您的代码以便我知道您是如何处理弹出窗口的吗?
  • 我已经更新了代码。请检查一下。我需要知道是否应该使用任何事件监听器或类似的东西来监听cookie的值变化或类似的东西?
  • 这取决于您的应用程序的使用情况以及您希望 24 小时的准确度。例如,您可以使用 $interval 每 10 分钟检查一次
猜你喜欢
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多