我的应用程序中有一个视图,它可以显示数据库,以显示他们之前上传的用户图像。
问题是另一个视图允许他们上传新图片,但当切换回上传图片的视图时,他们必须进行整页刷新才能看到新上传的内容。< / p>
问题是每次加载视图时如何强制$http.get
运行?
这就是我正在尝试的但却没有做我认为应该做的事情:
capApp.controller('myUploadedPhotos', function ($scope, $http) {
$scope.nameFilter = "";
$http.get("/ajax/myUploadedPhotos.php", { cache: false})
.success(function(response) {
$scope.photos = response;
});
});
有办法做到这一点吗?
答案 0 :(得分:3)
您的代码看起来正确,因此可能会从服务器缓存请求?您可以尝试将随机字符串附加到您的网址以中断缓存。 e.g。
"/ajax/myUploadedPhotos.php" + new Date().getTime()
在考虑之后,我认为你也可以删除{ cache: false}
,因为如果时间戳发生变化,Angular也无法缓存请求。旧的请求只会坐在某处占据记忆的地方。
答案 1 :(得分:-1)
我不太明白你的问题,但下次初始化行为没有任何问题:
(function(angular) {
var capApp = angular.module('yourModule', []);
capApp.controller('myUploadedPhotos', ['$scope', '$http',
function ($scope, $http) {
$scope.nameFilter = "";
$scope.actions = angular.extend($scope.actions || {}, {
init: function () {
return $http.get("/ajax/myUploadedPhotos.php", {cache: false}).then(
function (response) {
$scope.photos = response;
}, function (reason) {
console.log('Error occured: ' + reason);
});
}
});
// You could even use it in $watch
$scope.actions.init();
}
]);
})(angular);