【问题标题】:How can I use localStorageService in angular?如何以角度使用 localStorageService?
【发布时间】:2015-08-30 09:15:57
【问题描述】:

LocalStorageService(https://github.com/grevory/angular-local-storage) 提供帮助我使用本地存储保存数据的服务。 例如,

angular.module(app)
.controller("mainController",function(localStorageService){
    localStorageService.set("now",new Date());
});

我创建的服务需要一些本地数据,我将 LocalStorageService 注入其中。但是,我觉得这种使用 LocalStorageService 的方式很糟糕。我认为每个服务都应该是独立的,或者单独的。所以,要使用 LocalStorageService,我想我应该首先使用 config 加载数据并将数据保存在控制器中。这是正确的吗?如何以角度使用 localStorageService?请教我!

我制作了日历服务。如果这依赖于 localStorageService,我无法在没有 localStorageService 的情况下使用此服务。它的依赖性让我感觉很糟糕。我听说有时模块应该尽可能独立。

(日历服务有三个属性。两个属性是数字,一个显示日历的月份,另一个显示日历的年份。Rest 属性是一个包含日期的数组。)

【问题讨论】:

  • 不太清楚你在这里想问什么。您是要求对文档进行解释,还是要求使用示例?还是您只是在抱怨您不喜欢模块使用的设计模式?
  • 我想知道在哪里使用localStorageService。现在,我在服务中使用它,但我认为我应该在控制器中使用它。使用 localStorageService、服务或控制器哪个正确?这取决于情况,我应该改变如何使用?
  • 如果您的服务需要它,请在服务中使用它?您仍然没有澄清这个问题,只是为了更清楚地表明您根本不关心模块,而是您根本没有描述过的应用程序的体系结构。
  • 如果您的问题是“我应该在服务或控制器中使用此模块吗?”,除非我们知道服务和控制器在做什么,以及为什么您认为在服务是一种“坏方法”并不是很清楚。
  • 一个服务使用另一个服务是完全可以的。

标签: javascript angularjs


【解决方案1】:

你可以使用:

.factory('LocalStorageService', function(){

  return {
    setItem: function(key, obj) {
      var objToString = JSON.stringify(obj);
      window.localStorage.setItem(key, objToString);
    },
    getItem: function(key) {
      var str = window.localStorage.getItem(key);
      var stringToJSON = JSON.parse(str);
      return stringToJSON;
    }
  }
}

【讨论】:

  • 很抱歉添加使用localStorageService的例子。该工厂与 localStorageService 相同...我想知道如何在另一个服务中使用此服务。在另一个服务中使用此服务会使该服务依赖于 localStorageService。当我使用依赖localStorageService的服务时,没有localStorageService我无法使用该服务。
  • 与 DI....factory('AnotherService', function(LocalStorageService){})
猜你喜欢
  • 2022-01-04
  • 2022-01-23
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 2019-03-02
  • 2019-03-05
  • 2020-12-09
  • 1970-01-01
相关资源
最近更新 更多