如何缓存从ANgularJS $ http调用返回的数据?

时间:2014-10-28 16:42:23

标签: angularjs

我有一些AngularJS Javascript代码调用Web服务 并获得一个简单的对象数组:

this.$http({url: '/api/Action/GetActions', method: "GET" })
    .success((data) => {
       self.Actions = data;
    })

有什么方法可以缓存这个,所以我不需要 继续访问服务器?我不确定这是否可以 差异,但我使用Protractor进行我的E2E测试。我也是 寻找与Protractor一起使用的解决方案。 理想情况下,我只想使用AngularJS代码执行此操作 除非真的需要,否则不要使用外部库。

1 个答案:

答案 0 :(得分:0)

以下是使用localStorage的{​​{3}}。

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

app.controller('appCtrl', function($scope, $http){

  $scope.getData = function(){
    if(!localStorage.getItem('ip')){
      $http.get('http://ip.jsontest.com/')
        .success(function(response){
          localStorage.setItem('ip', JSON.stringify(response));
          $scope.data = response 
          $scope.dataSource = 'Server';
        })
    }else{
      $scope.data = JSON.parse(localStorage.getItem('ip'));
      $scope.dataSource = 'Cache';
    }
  };

});