Angular http获取不刷新数据

J H*_*unt 2 json angularjs

当我的页面启动时,setDataOnPage2执行并正常工作.我能够将数据导入$ scope.records以将其呈现给页面.

    $scope.setDataOnPage2 = function () {

    $http({
        method: 'get',
        url: GetSchedule,
        params: {
            date: $scope.currentDate
        }
    }).success(function (results) {
        console.log(JSON.stringify(results));
        $scope.records = results; 
    });
    }
    $scope.setDataOnPage2();
Run Code Online (Sandbox Code Playgroud)

我的问题是当我使用ng-click从按钮点击此功能.当我单击按钮时,我在JSON演示文稿中看到结果,因为console.log(JSON.stringify(results)),但它是旧数据.

当我打开我的电脑上的表格它工作正常,然后我去我的手机更新数据很好,但当我点击执行setDataOnPage2的刷新按钮时,它在控制台中显示JSON,但不显示更新我在电话上做了,直到刷新页面.我不确定为什么我的http调用缓存了我的数据.

我甚至在后面的代码中放置一个断点,http get应该执行,但它只在页面刷新时执行,而不是在我单击执行setDataOnPage2的刷新按钮时执行.

奇怪的是,json出现在控制台中,但数据没有刷新,也没有达到断点.

关于为什么会发生这种情况的任何想法?

Kat*_*hir 7

这可能是浏览器上的缓存问题.浏览器可能会缓存get请求.要避免此问题,只需在时间戳附加请求网址即可.

GetSchedule+"&random="+new Date().getTime() 
Run Code Online (Sandbox Code Playgroud)

如果你已经有查询参数,否则使用

GetSchedule+"?random="+new Date().getTime() 
Run Code Online (Sandbox Code Playgroud)

或者您也可以添加标题以避免缓存

 headers: {
                'Cache-Control': 'no-cache',
                'Pragma':'no-cache'
            },
Run Code Online (Sandbox Code Playgroud)