所以我有这段代码来访问JSON文件中的数据。
taskAppControllers.controller('MainMenuCtrl', ['$scope','$http',
function($scope, $http){
$http.get('data/main-menu.json').success(function(data){
$scope.mainMenuOptions = data
});
}]);
一切都很好。但是当我更改JSON文件时,一切都保持不变。如果我重命名JSON文件并访问它,它将显示更新的数据,如果之后我将其重命名,它将在编辑之前显示JSON的输出。它可能会将数据保存在浏览器内存或类似内容中。它与缓存相关的问题。如何修复/重置它?
答案 0 :(得分:2)
听起来像缓存问题,尝试将随机参数附加到URL,以强制从服务器获取新的副本:
$http.get('data/main-menu.json?' + Math.random())
答案 1 :(得分:2)
我不相信这实际上是一个特定角度的问题。您的浏览器可能会缓存这个。
如果main-menu.json应该是静态的,请考虑在调试会话期间执行ctrl + F5而不是F5。如果需要更新,您可以更改与缓存相关的响应标头,让浏览器知道它不应该缓存,或者您可以添加一个"缓存破坏者"通过添加时间戳作为请求参数来请求。但是,这并不是处理它的首选方式。
答案 2 :(得分:0)
假设我理解正确,Angular将不会以您期望的方式动态更新。它只会在您重新加载页面时进行更新,或者如果您对其进行编码以从服务器重新加载数据,则会进行更新。我会调用$ http服务。
您可能希望轮询服务器以检查数据是否更改或使用SignalR之类的东西将新数据“推送”到浏览器。