在使用angularjs刷新页面时,不应删除服务数据

service data should not remove , while refresh the page using angularjs

本文关键字:删除 数据 服务 angularjs 刷新      更新时间:2023-09-26
  • 我有两个独立的页面控制器,然后在第一个控制器中分配服务上的数据。我可以从第二个控制器(另一个页面)使用该服务数据,但如果刷新页面(第二个控制页面),则该服务数据显示为未定义的

    //控制器1

    app.controller("pageCtrl",['$scope','pojo' , function( $scope,pojo)
    {
      pojo.setpgeCtrlScope($scope);
    }
    ]);
    

    //控制器2

    app.controller("pageCtrl2",['$scope','pojo' , function( $scope,pojo)
    {
     pojo.getpgeCtrlScope();
    }
    ]);
    

    //pojo服务

    app.service("pojo",function()
    {
      var page1Data;
      this.setpgeCtrlScope = function(data)
      {
        page1Data = data;
       }
      this.setpgeCtrlScope = function()
      {
        return page1Data;
      };
    });
    

请对以上问题提出建议。将数据传递给第二控制器的任何其他方式。并且在刷新页面时不应删除

      Thank you !!

此数据在内存中。如果你刷新页面,你会把它弄松。

您可以使用一些方法,如将服务中的数据存储在缓存、本地存储等中。

例如:

app.service("pojo", function() {
    var page1Data = getSavedData(); //A method to retrieve the data from a cache or storage
    this.setpgeCtrlScope = function(data) {
        page1Data = data;
        saveData(page1Data); //A method to save the data to the cache or storage
    }
    this.getpgeCtrlScope = function() {
        return page1Data;
    };
});

这样,每次加载服务(在页面刷新后),它都会检索以前保存的数据。

关于存储,有很多选择。这个真的很容易使用:
HTML5本地存储

有无数的解决方案和实现。我只给你举了一个例子来指导你。