我正在尝试在我的模块angularJs中添加本地存储,我读了一些but,但我做不到。我想在本地存储价值,所以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:很抱歉演示文稿,但是代码太长了
发布于 2020-03-03 18:50:40
要在AngularJS中使用localStorage API,请将$window
注入到控制器中:
app.controller("ctrl", function($scope, $window) {
console.log($window.localStorage);
})
AngularJS团队建议代码注入$window
服务。
虽然
window
在JavaScript中是全局可用的,但它会导致可测试性问题,因为它是一个全局变量。在AngularJS中,我们总是通过$window
服务来引用它,因此它可能会被覆盖、删除或模拟以进行测试。
https://stackoverflow.com/questions/60513514
复制相似问题