Javascript Angular$HTTPGET请求只是将收到的JSON添加到$scope变量中,而不是在每次刷新时替换它

Javascript Angular$HTTPGET请求只是将收到的JSON添加到$scope变量中,而不是在每次刷新时替换它,javascript,json,angularjs,get,pull-to-refresh,Javascript,Json,Angularjs,Get,Pull To Refresh,我有一个简单的控制器操作,它应该完成请求一些json对象并将它们显示在列表中的全部功能: $scope.onReload = function() { $http.get('http://some-demu-url.com/items.json').success(function(data) { $scope.items = data; $scope.$broadcast('scroll.refreshComplete'); }); }; 概念很简单:当应用程序像这样

我有一个简单的控制器操作,它应该完成请求一些json对象并将它们显示在列表中的全部功能:

$scope.onReload = function() {
  $http.get('http://some-demu-url.com/items.json').success(function(data) {
    $scope.items = data;
    $scope.$broadcast('scroll.refreshComplete');
  });
};
概念很简单:当应用程序像这样启动时,函数被初始化:$scope.onReload;这很有效

但是,我有一个刷新操作,当用户取下某个内容时,它会触发onRefresh函数。当刷新器被激活时,新数据应该替换旧数据,但事实并非如此!新数据会被提取,但会被添加到列表中,而不是替换旧数据

这意味着如果JSON包含两个列表项A和B的信息:

在初始化时,列表中按预期有A&B 在第一次刷新时,仍然是来自init的A&B加上来自新get请求的A&B。 第二次已经是列表中的6项A、B、A、B、A、B 等等


我不知道我做错了什么。

不确定这是否是完整的解决方案,但尝试将OnReload中的项目初始化为空:

$scope.items={}


如前所述,我还将研究潜在的缓存问题

代码看起来不错。我想这是另外一种东西,而不是这一部分。是否有东西在json中添加数据?请查看提供json响应时返回的响应头。我认为正在设置缓存头,浏览器正在缓存结果。而且这是否依赖于浏览器,或者您在所有浏览器中都遇到了相同的问题?@DhruvChandna我在参考资料部分的Safari inspection tools中发现,拉取的json文件仍保留在缓存中,因此,如果我拉取刷新两次,则json文件在XHRs文件夹中会出现三次,此文件夹由开发人员工具生成以进行结构化网站的数据。这意味着在我手动刷新页面之前,所有内容都将保留。我现在正试图关闭缓存,但无法使其工作。。缓存控制在响应头中设置为max age=0,并且似乎没有更改…感谢您的响应,我也尝试了此操作,但如果我测试它,它不会更改任何内容。。。