【问题标题】:Wrapping localStorage in a angular2 service?将 localStorage 包装在 angular2 服务中?
【发布时间】:2017-10-22 03:20:05
【问题描述】:

将本地存储包装在 angular2 中的服务中是否明智?是否有任何论据为什么应该这样做。显然它更整洁。调用服务作为对组件的依赖注入。我没有看到任何其他“专业人士”。

例如(服务中的本地存储)

setHost(value: string) {
    localStorage.setItem(STATIC_VARIABLE_KEY, value);
  }

  getHost(): string {
    return localStorage.getItem(STATIC_VARIABLE_KEY);
  }

【问题讨论】:

    标签: javascript angular typescript dependency-injection local-storage


    【解决方案1】:

    这是个好主意的主要原因是仍有浏览器在私有模式下不支持localStorage,通过使用这一抽象层,您可以简单地将localStorage替换为cookie ,当它不可用时。

    例如,在最新的 High Sierra 版本之前,即使是隐身模式下的 MacOS Safari 也不支持它。移动 Safari 也有这个问题。 (我认为它仍然存在于 iOS 11 上,但不确定。)

    但我建议使用一些现成的解决方案,而不是从头开始。看看这个模块:

    https://github.com/phenomnomnominal/angular-2-local-storage

    这样做的另一个原因可能是与服务器端渲染(通过角度/通用)的兼容性,因为localStorage 在服务器端根本不可用。

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 2016-05-09
      • 2017-11-23
      • 1970-01-01
      • 2016-08-31
      • 2017-06-27
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多