在视图之间切换以及在控制器之间共享的服务上缓存请求时如何保留页面状态?
我有两种看法:
$routeProvider.when('/', {templateUrl: 'views/art.html'});
$routeProvider.when('/bio', {templateUrl: 'views/bio.html'});
art.html
有一个控制器 Filters
.controller('Filters', ['$scope','Imgur', function($scope, Imgur) {
$scope.$on('updateAlbumsList', function(e) {
$scope.albumsList = Imgur.returnAlbumsList();
});
$scope.filterAlbum = function(id) {
Imgur.filterAlbum(id);
};
$scope.init = function() {
Imgur.getAlbumsList(function(){
//A hack to preserve page state
Imgur.loadFilters();
});
};
$scope.init();
}])
现在显然我可以对服务对象做一些事情,比如应用过滤器,它可以更改现有属性、添加新属性,甚至为每个请求添加新对象。
但是当我切换到bio.html
和返回时会发生什么art.html
?请求再次发出并重新呈现整个页面!我理解这是因为该对象正在被init()
.
在视图之间切换时如何保留页面的状态?
如何将缓存请求用于其他控制器共享的相同服务调用?