【发布时间】:2014-06-24 02:52:21
【问题描述】:
我使用表单来提交值。当我点击提交按钮时,它会调用edit()。
值存储在数据库中(使用 php/mysql)。到目前为止一切正常。
我在同一个局部视图上检索值。在window.location.reload(); 上,页面将刷新,但值不会立即更新。几次刷新后,
(当我的 DevTools 打开时,缓存被禁用......所以它会立即更新)
在没有打开 DevTools 的情况下,即使我设置了一些函数来禁用缓存,缓存也会起作用。
listingProjectApp.run(function($rootScope, $templateCache) {
$rootScope.$on('$viewContentLoaded', function() {
$templateCache.removeAll();
});
});
listingProjectApp.factory('EditCache', function($cacheFactory) {
return $cacheFactory('editCache', {
capacity: 1
});
});
listingControllers.controller('editProjectCtrl', ['$scope', '$http', '$routeParams', 'EditCache',
function ($scope, $http, $routeParams, EditCache) {
var result = EditCache.get('$http');
if( result ){
$scope.project = result;
console.log("Results from cache");
}
else {
$http({
url: "php/getProjectDetails.php",
method: "GET",
cache: false,
params: { 'id': $scope.projectId }
}).success(function(data) {
$scope.project = data;
EditCache.put('$http', data);
console.log("New results");
});
}
console.log(EditCache.info())
$scope.edit = function(project){
console.log(project);
$http({
url: "php/edit.php",
method: "POST",
data: project
}).success(function(id) {
EditCache.removeAll();
window.location.reload();
});
return false;
}
}]);
【问题讨论】:
标签: json angularjs caching angularjs-scope