销毁AngularJS $ Http.Get缓存

时间:2015-12-03 20:42:42

标签: javascript angularjs browser-cache

我无法弄清楚如何销毁我的缓存以从我的服务器获取新列表。

当我获得第一个列表时,它的工作完美,但在将信息插入我的数据库并发送另一个获取到我的服务器之后,浏览器只显示我的列表的缓存版本,而没有新数据。< / p>

我试着像这样使用cacheFactory:

$cacheFactory.get('$http').removeAll();

但它没有效果。

这是我的角度模块,服务和控制器。

模块myApp

var app = angular.module('myApp', ['ngRoute', 'LocalStorageModule', 'angular-loading-bar', 'smart-table']);

app.config(function ($routeProvider) {

    $routeProvider.when("/home", {
        controller: "homeController",
        templateUrl: "/web/views/home.html"
    });


    $routeProvider.when("/cidades", {
        controller: "cidadesController",
        templateUrl: "/web/views/basico/cidades/cidades.html"
    });


    $routeProvider.otherwise({ redirectTo: "/home" });
});

app.config(function ($httpProvider) {
    $httpProvider.interceptors.push('authInterceptorService');
});
app.run(['authService', function (authService) {
    authService.fillAuthData();
}]);

cidadesService

'use strict';
app.factory('cidadesService', ['$http', '$cacheFactory', function ($http, $cacheFactory) {

    var serviceBase = 'http://localhost:22207/';
    var serviceFactory = {};

    var _getCidades = function () {

        $cacheFactory.get('$http').removeAll(); //This doesn't worked
        return $http.get(serviceBase + 'api/cidades/getall').then(function (results) {
            return results;
        });
    };

    serviceFactory.getCidades = _getCidades;

    return serviceFactory;

}]);

cidadesController

'use strict';
app.controller('cidadesController', ['$scope', 'cidadesService', function ($scope, service) {

    $scope.cidade = {
        id: "",
        nome:"",
    };

    $scope.message = "";

    $scope.getCidades = function () {
        service.getCidades().then(function (results) {

            $scope.cidades = [];
            $scope.collection = [];

            $scope.cidades = results.data;
            $scope.collection = [].concat($scope.cidades);

        }, function (err) {
            $scope.message = err.error_description;
        });
    };

    //Initializing the list
    $scope.getCidades();

}]);

1 个答案:

答案 0 :(得分:1)

我真的没有看到任何错误,但无论如何,您可以为您的请求添加唯一的参数以防止缓存 像

$http.get(serviceBase + 'api/cidades/getall?unique=' + new Date().getTime())