AngularJs 上传新页面时本地存储数据丢失

AngularJs Localstorage data lost when uploading new page

我正在处理一个包含一些常见问题解答的页面,并且我正在使用 angular localstorage 来保存数据。 然后我将所有文件上传到服务器,与其他人共享。 当我这样做时,我丢失了数据,并在我第一次上传时得到 it.It,所以它不可能在那里。然后我插入一些数据,它工作正常,即使我关闭浏览器并再次打开它,我的数据就在那里。

但是当我再次上传我的 .html 文件到服务器时,我又把它弄丢了。它是相同的 url,相同的 html 页面,但是 angular localstorage 中的数据是如何被重置的。

我是 angular 的新人,我是第一次使用 localstorage。我已经搜索过这个问题,但没有找到任何提示。

如何将数据保存在本地存储中?

我在 angular 模块中的代码是:

var app = angular.module('WikiCTTXApp',['ngSanitize','ngStorage']);

app.controller('InfoInterController',函数($scope, $localStorage,$sessionStorage){

    $scope.$storage = $localStorage;

    $scope.InfoInter = $localStorage.InfoInter;

    $scope.newInfoInter = {};

    $scope.addInfoInter=function(){
        /* AD(added later): I added this line to test and initialize the variable and my issue disapeard */
        if (typeof($scope.InfoInter) == 'undefined'){$scope.InfoInter=[]};

        $scope.InfoInter.push($scope.newInfoInter);
        $scope.newInfoInter = {};
        $scope.save();
    };

    $scope.remove = function(item) { 
      var index = $scope.InfoInter.indexOf(item);
      $scope.InfoInter.splice(item, 1);     
    };

    $scope.save = function() {
        $localStorage.InfoInter = $scope.InfoInter;
    };

    $scope.load = function() {
        $scope.InfoInter = $localStorage.InfoInter;
    };

});

我没有遇到过那种具体情况,但 LocalStorage 是 Angular 使用的 HTML5 功能,而不是 Angular 本身的功能。因此,它取决于正在使用的浏览器的实现和用户设置 - 您无法控制存储是否(或多长时间)将被持久化。

作为一般规则,您永远不应该假设它会在那里,并且您应该始终编写您的代码,以便它处理您的数据不存在的情况。