【问题标题】:add localStorage to angularJs module将 localStorage 添加到 angularJs 模块
【发布时间】:2020-06-16 04:55:29
【问题描述】:

我正在尝试在我的模块 angularJs 中添加 localstorage,我阅读了一些 tuts 但我做不到。 我想在本地保存价值,所以 localStorage 在我看来是更好的方法。 这是我的代码:

>var myApp = angular.module("myApp", ["favicon"]);//,
> "localStorageModule"]);
>     myApp.controller("appCtrl", [
>       "$scope",
>       "faviconFilter",
>       //"localStorageService",
>       function($scope, faviconFilter ){//, localStorageService) {
>         $scope.bookmarks = [
>           { 
>             title: "CodePen", 
>             url: "https://codepen.io", 
>             category: "web design", 
>             likes: 3
>           },
>           {
>             title: "Youtube",
>             url: "https://youtube.fr",
>             category: "fun",
>             likes: 3
>           },
>           { title: "Google", url: "https://google.fr", category: "web", likes: 3 }
>         ];
>         $scope.increment = function($index) {
>           $scope.likes++;
>         };
>         $scope.addBookmark = function() {
>           $scope.bookmarks.push({
>             title: $scope.site_name,
>             url: $scope.site_url,
>             category: $scope.site_category,
>             likes: 0,
>             favicon: faviconFilter($scope.site_url)
>           });
>           //localStorageService.add('site_name', 'site_url', 'site_category');
>           //$scope.site_name = localStorageService.add('site_name');
>           //$scope.site_url = localStorageService.add('site_url');
>           //$scope.site_category = localStorageService.add('site_category');
>           $scope.site_name = "";
>           $scope.site_url = "";
>           $scope.site_category = "";
>         };
>         // $scope.orderList = "cat";
>         $scope.bookmarks.forEach(function(bookmarks) {
>           bookmarks.favicon = faviconFilter(bookmarks.url);
>         });
>     $scope.deleteBookmark = function(id) {
>       var bookmark = $scope.bookmarks[id];
>       $scope.bookmarks.splice(id, 1);
>         };
>       }
>     ]);

哪里有 // 我正在尝试添加 localStorage。 如果有人可以帮助我... ps:抱歉介绍,代码太长了

【问题讨论】:

  • 您在应用中注入的localStorageModule 是什么?为什么不直接将$window 注入您的控制器并使用$window.localStorage
  • 您需要根据 localStorageModule doc npmjs.com/package/angular-local-storage 调用 localStorageService.set 函数而不是 localStorageService.add

标签: angularjs local-storage


【解决方案1】:

要在 AngularJS 中使用 localStorage API,请将 $window 注入到您的控制器中:

app.controller("ctrl", function($scope, $window) {
    console.log($window.localStorage);
})

AngularJS 团队建议代码注入$window 服务。

虽然window 在 JavaScript 中是全局可用的,但它会导致可测试性问题,因为它是一个全局变量。在 AngularJS 中,我们总是通过 $window 服务引用它,因此它可能会被覆盖、删除或模拟以进行测试。

——AngularJS $window Service API Reference

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
  • 2020-03-21
  • 2013-12-30
  • 2012-01-18
  • 1970-01-01
相关资源
最近更新 更多