добавить localStorage в модуль angularJs - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь добавить localalstorage в мой модуль angularJs, я прочитал некоторые статьи, но я не могу этого сделать. Я хочу сохранить значение в локальном, так что 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: извините за презентацию, но код слишком длинный

1 Ответ

0 голосов
/ 03 марта 2020

Чтобы использовать localStorage API в AngularJS, введите $window в свой контроллер:

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

Команда AngularJS рекомендует код введите сервис $window.

Хотя window доступен в глобальном масштабе в JavaScript, это вызывает проблемы с тестируемостью, потому что это глобальная переменная. В AngularJS мы всегда ссылаемся на него через сервис $window, поэтому он может быть переопределен, удален или проверен для тестирования.

- AngularJS $ window Service Справочник по API

...