From 9b601b5523537f496b4a41bb8e57c1b1e916e949 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 24 Jun 2014 09:57:53 +0900 Subject: [PATCH] fix(scrollController): allow tab $historyId to remember scroll Fixes a bug with tabs, where tabs would only remember their scroll position when directly related to a view state. Closes #1654 --- js/angular/controller/scrollController.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/angular/controller/scrollController.js b/js/angular/controller/scrollController.js index 7e58677326..27fe6367b9 100644 --- a/js/angular/controller/scrollController.js +++ b/js/angular/controller/scrollController.js @@ -65,6 +65,7 @@ function($scope, scrollViewOptions, $timeout, $window, $$scrollValueCache, $loca backListenDone(); if (self._rememberScrollId) { $$scrollValueCache[self._rememberScrollId] = scrollView.getValues(); + console.log($$scrollValueCache); } }); @@ -83,19 +84,21 @@ function($scope, scrollViewOptions, $timeout, $window, $$scrollValueCache, $loca if (e.defaultPrevented) { return; } e.preventDefault(); - var viewId = historyData && historyData.viewId; + var viewId = historyData && historyData.viewId || $scope.$historyId; if (viewId) { $timeout(function() { self.rememberScrollPosition(viewId); self.scrollToRememberedPosition(); + console.log("scrollToRememberedPosition: ",viewId, $$scrollValueCache); + backListenDone = $rootScope.$on('$viewHistory.viewBack', function(e, fromViewId, toViewId) { //When going back from this view, forget its saved scroll position if (viewId === fromViewId) { self.forgetScrollPosition(); } }); - }, 1, false); + }, 0, false); } });