Как сохранить состояние страницы при переключении между представлениями, а также запросы кеширования на службе, разделяемой между контроллерами?
У меня есть две точки зрения:
$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();
}])
Here is a plunker with full source.
Теперь, очевидно, я могу делать вещи для объекта службы, например применять фильтры, которые могут изменять свойства exhisting, добавлять новые и даже добавлять новые объекты в запрос.
Но что происходит, когда я переключаюсь на bio.html
и обратно в art.html
? Запросы снова отправляются и повторно отображаются всю страницу! Я понимаю, это потому, что объект рестанируется init()
.
Как сохранить состояние страницы при переключении между видами?
Как использовать кешированные запросы для идентичных вызовов служб, совместно используемых другими контроллерами?